字符比较在C中发生

时间:2016-11-12 00:14:34

标签: c

假设您有一个像char str[10]之类的字符串,并且您正在比较let,比如说

if(str[i]>str[i+1])
{
  // some lines of code
}

他们如何比较,编译器是否将字符转换为ASCII?想知道在C中如何进行字符比较。

1 个答案:

答案 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。