c - 比较字符串中的字母

0 c strcmp

好吧,这一定很容易,但我现在有一天:-p

我有一个char*数组,例如目的如下:

char* symbols [] = {"++-", "--+"};
Run Code Online (Sandbox Code Playgroud)

我在试图环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");
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,编译时我收到警告:

comparison between pointer and integer [enabled by default]
Run Code Online (Sandbox Code Playgroud)

我想我错过了一些基本的东西 - 有人能帮我看看树上的木头吗?

hac*_*cks 5

symbols是指向的类型指针char.你需要一个指针数组char.
更改

char* symbols = {"++-", "--+"};  
Run Code Online (Sandbox Code Playgroud)

char* symbols[] = {"++-", "--+"};  
Run Code Online (Sandbox Code Playgroud)

和条件 if

if(strcmp(tmp[i], "+") == 0)  
Run Code Online (Sandbox Code Playgroud)

if(tmp[i] == '+')
Run Code Online (Sandbox Code Playgroud)