C中的字符比较

时间:2014-03-29 20:15:27

标签: c char comparison

我正在尝试比较两个字符,看一个是否比另一个更大。为了确定它们是否相等,我使用了strcmp。我可以使用与strcmp类似的东西吗?

3 个答案:

答案 0 :(得分:16)

char变量实际上是一个8位整数值。它的值为0255。这些是ASCII codes0代表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;
}
相关问题