C中的字符比较
我试图比较两个字符,看看一个是否比另一个更大。 为了看看它们是否相等,我使用了strcmp
。 有什么类似于我可以使用的strcmp
吗?
char
变量实际上是一个8位整数值。 它的值为0
到255
。 这些是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; }