【问题标题】:c - compare letters in a stringc - 比较字符串中的字母
【发布时间】:2014-04-05 13:54:57
【问题描述】:

好的,这一定很容易,但我正经历着这样的日子:-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]

我想我缺少一些基本的东西 - 谁能帮我从树上看到木头?

【问题讨论】:

    标签: c strcmp


    【解决方案1】:

    symbols 是指向char 的类型指针。您需要一个指向 char 的指针数组。
    改变

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

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

    if中的条件

    if(strcmp(tmp[i], "+") == 0)  
    

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

    【讨论】:

    • 太好了,谢谢。没有意识到我在用双引号做什么 - 一直就是这样!很棒的东西。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2016-05-05
      • 2013-12-16
      • 2023-03-19
      • 2014-09-13
      • 1970-01-01
      • 2013-03-21
      • 1970-01-01
      • 1970-01-01
      • 2017-04-26
      相关资源
      最近更新 更多