好的,这一定很容易,但我现在有一天:-p
我有一个char *数组,其目的如下:
char* symbols [] = {"++-", "--+"};
我正在尝试循环symbols[0]
和symbols[1]
并比较每个字符以查看其是+
还是-
我正在尝试:
char* tmp = symbols[0];
for (int i = 0; i < strlen(tmp); i++)
{
if(strcmp(tmp[i], "+") == 0)
{
printf("It's a plus!\n");
}
else if (strcmp(tmp[i], "-") == 0)
{
printf("Its a minus!\n");
}
}
然而,在编译时我收到警告:
comparison between pointer and integer [enabled by default]
我认为我遗漏了一些基本的东西 - 有人能帮我看看树上的木头吗?
答案 0 :(得分:5)
symbols
是char
的指针类型。你需要一个指向char
的指针数组
改变
char* symbols = {"++-", "--+"};
到
char* symbols[] = {"++-", "--+"};
和if
if(strcmp(tmp[i], "+") == 0)
到
if(tmp[i] == '+')
答案 1 :(得分:1)
" "
和' '
不一样。使用单引号表示一个字符,否则它是一个字符数组(这是一个数组)。