我正在尝试比较两个字符,看一个是否比另一个更大。为了确定它们是否相等,我使用了strcmp
。我可以使用与strcmp
类似的东西吗?
答案 0 :(得分:16)
char
变量实际上是一个8位整数值。它的值为0
到255
。这些是ASCII codes。 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);
答案 1 :(得分:8)
在C中,char类型具有数值,因此&gt;运算符将正常工作
#include <stdio.h>
main() {
char a='z';
char b='h';
if ( a > b ) {
printf("%c greater than %c\n",a,b);
}
}
答案 2 :(得分:1)
我相信您正在尝试比较两个代表值的字符串,您正在寻找的功能是:
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;
}