假设您有一个像char str[10]
之类的字符串,并且您正在比较let,比如说
if(str[i]>str[i+1])
{
// some lines of code
}
他们如何比较,编译器是否将字符转换为ASCII?想知道在C中如何进行字符比较。
答案 0 :(得分:1)
如果我说
char str[] = "Hello, world!";
int i = 7;
printf("%d %d\n", str[i], str[i+1]);
if(str[i] > str[i+1]) { printf("it is greater\n"); }
它会打印
119 111
it is greater
但这里没有任何“魔法”,也没有特别的转换。在C中,字符简单地用一个小整数表示,给出机器字符集中字符的值,对于所有意图和目的,我们可以假设它是ASCII(或者它的超集,Unicode)。正如任何ASCII图表都会告诉你的那样,'o'是111而'w'是119。