gcc 4.5.1 c89
我有一个填充了char字符的缓冲区.我需要比较它们:
这是缓冲区的示例内容:
vote buffer [ 51 ]
vote buffer [ 32 ]
vote buffer [ 49 ]
vote buffer [ 32 ]
vote buffer [ 50 ]
vote buffer [ 32 ]
vote buffer [ 53 ]
vote buffer [ 32 ]
Run Code Online (Sandbox Code Playgroud)
我试图得到缓冲区中的这些字符的int等价物进行比较.
#define NUMBER_OF_CANDIDATES 7
if((vote_data.vote_buff[i] > NUMBER_OF_CANDIDATES || vote_data.vote_buff[i] < 1) {
/* Do something */
}
Run Code Online (Sandbox Code Playgroud)
正如你所看到的那样,在if语句中永远不会是真的,因为范围要大得多.
我试过转换为(int).但是,这并没有解决问题.
我想我可以用ascii字符集来计算.但是,如果我无法帮助它,我宁愿不添加更多的复杂性.
非常感谢任何建议,
小智 5
您可以使用atoi将字符串转换为整数.Char和int在C中是相同的
int main (int argc, char** argv)
{
int n=65;
char* String;
String="1234";
printf("String: %s - Integer: %d\n", String, atoi(String));
printf("int %d is char: %c\n ", n, n);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
27625 次 |
| 最近记录: |