【问题标题】:C - Check if last character of a string equals "#"C - 检查字符串的最后一个字符是否等于“#”
【发布时间】:2023-03-28 02:57:01
【问题描述】:

我想检查我的字符串的最后一个字符是否等于“#”,如果是则删除它。但是,我无法进行比较。我的代码有什么问题?

char* involved_node_string(int shared_val, int values[], int directions[]){;
    char involved_nodes[1024] = {};
    char *p = involved_nodes; 
    char result[1024];
    int k;
    for (k = 0; k < 4; k++){
        if (values[k] == shared_val){
            sprintf(result, "%d", directions[k]);
            strcat(involved_nodes, result);
            strcat(involved_nodes, "#");                                
        }
    }
    char v = p[strlen(p)-1];
    if (v == "#"){
        printf("Yes\n");    
    }


    return p;
}

【问题讨论】:

  • 您是否从编译器收到错误消息?如果是这样,该消息究竟是什么,您不理解其中的哪一部分?您必须提供更多详细信息,否则我们无法为您提供帮助。见stackoverflow.com/help/how-to-ask
  • 我投票决定将其作为How does c compare character variable against string? 的副本关闭,它就是这样。 OP 接受了副本。然后一个金徽章用户重新打开它。我确实想知道为什么。

标签: c


【解决方案1】:

问题可能是您将 char (v) 与字符串文字 ("#") 进行比较?也许尝试使用表达式(v == '#')(使用单引号而不是双引号来表示char)看看是否可行?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-24
    • 2021-12-08
    • 2014-07-29
    • 1970-01-01
    • 2020-07-15
    • 2013-01-06
    • 1970-01-01
    相关资源
    最近更新 更多