如何在C中编写if语句来比较两个字符?下面的代码是尝试但不起作用。
int main(int argc, char *argv[]) {
char *orgStr = "This is a test";
if(orgStr[4] == " " ){
printf("SPACE FOUND");
}
return 0;
}
也许我在比较两种不同的数据类型? - 但是编译程序时我没有收到任何警告。
提前致谢
答案 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;
}