我如何比较两个字符?

时间:2016-10-22 17:06:44

标签: c if-statement

如何在C中编写if语句来比较两个字符?下面的代码是尝试但不起作用。

int main(int argc, char *argv[]) {

    char *orgStr = "This is a test";

    if(orgStr[4] == " " ){
        printf("SPACE FOUND");
    }

    return 0;
}

也许我在比较两种不同的数据类型? - 但是编译程序时我没有收到任何警告。

提前致谢

3 个答案:

答案 0 :(得分:3)

如果用-Wall选项编译程序它会给你警告

  

警告:指针和整数if之间的比较(orgStr [4] ==“”   ){                 ^警告:与字符串文字比较导致未指定的行为[-Waddress]

而不是使用双引号,请使用单引号,它将解决问题。

答案 1 :(得分:1)

你是“”实际上是一个字符串,或者更具体地说将被解释为一个指针,所以你要将一些数字与一个字符进行比较,这是另一个数字,它们肯定不会是一样的。

使用''

答案 2 :(得分:0)

您可以使用/库来解决问题,并检查字符串中出现空格的索引,如下所示:

ctype.h

输出:

#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>

int 
main(int argc, char *argv[]) {
    char *orgStr = "This is a test";
    int length;

    for(length = 0; orgStr[length] != '\0'; length++) {
        if(isspace(orgStr[length])){
            printf("SPACE FOUND at orgStr[%d]\n", length);
        }
    }

    return 0;
}