c - 比较字符串中的字母

时间:2014-04-05 13:54:58

标签: c strcmp

好的,这一定很容易,但我现在有一天:-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]

我认为我遗漏了一些基本的东西 - 有人能帮我看看树上的木头吗?

2 个答案:

答案 0 :(得分:5)

symbolschar的指针类型。你需要一个指向char的指针数组 改变

char* symbols = {"++-", "--+"};  

char* symbols[] = {"++-", "--+"};  

if

中的条件
if(strcmp(tmp[i], "+") == 0)  

if(tmp[i] == '+')

答案 1 :(得分:1)

" "' '不一样。使用单引号表示一个字符,否则它是一个字符数组(这是一个数组)。