C中的字符比较

我试图比较两个字符,看看一个是否比另一个更大。 为了看看它们是否相等,我使用了strcmp 。 有什么类似于我可以使用的strcmp吗?

char变量实际上是一个8位整数值。 它的值为0255 。 这些是ASCII码 。 0代表C-null字符, 255代表空符号。

因此,当您编写以下作业时:

 char a = 'a'; 

它是一样的:

 char a = 97; 

因此,您可以使用><==<=>=运算符比较两个char变量:

 char a = 'a'; char b = 'b'; if( a < b ) printf("%c is smaller than %c", a, b); if( a > b ) printf("%c is smaller than %c", a, b); if( a == b ) printf("%c is equal to %c", a, b); 

在C中,char类型具有数值,因此>运算符可以正常工作

 #include  main() { char a='z'; char b='h'; if ( a > b ) { printf("%c greater than %c\n",a,b); } } 

我相信您正在尝试比较两个代表值的字符串,您正在寻找的function是:

 int atoi(const char *nptr); 

要么

 long int strtol(const char *nptr, char **endptr, int base); 

这些函数将允许您将字符串转换为int / long int:

 int val = strtol("555", NULL, 10); 

并将其与另一个值进行比较。

 int main (int argc, char *argv[]) { long int val = 0; if (argc < 2) { fprintf(stderr, "Usage: %s number\n", argv[0]); exit(EXIT_FAILURE); } val = strtol(argv[1], NULL, 10); printf("%d is %s than 555\n", val, val > 555 ? "bigger" : "smaller"); return 0; }