You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C语言使用strcmp比对字符串与二维字符串数组报错无匹配函数如何解决

错误原因分析

  • 类型不匹配:strcmp函数要求入参是两个char*类型的字符串首地址,你传入的str2是二维字符数组名,本身是指向一维数组的指针(类型为char (*)[MAXSIZE],和char*不兼容,因此编译器找不到匹配的strcmp函数实现,抛出对应错误。
  • 逻辑错误1:strcmp返回值为0时才代表两个字符串内容完全相等,你当前的判断逻辑写反了。
  • 逻辑错误2:return false写在了循环体内部,第一次循环匹配失败就会直接返回结果,不会遍历剩下的3个元素。

修正后代码

bool checkIfSameMedicine (char str1[], char str2[][MAXSIZE])
{
    for (int i = 0; i <= 3; i++)
    {
        // 取二维数组第i行的首地址str2[i]作为入参,返回0时代表匹配成功
        if (strcmp(str2[i], str1) == 0)
        {
            return true;
        }
    }
    // 遍历完所有元素都未匹配再返回false
    return false;
}

内容的提问来源于stack exchange,提问作者Shakked

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 12:06:04