在字符串数组和二维数组字符串之间使用 strcmp
using strcmp between string array and 2d array string
我需要在我输入的二维数组中搜索一个词,但是当我使用 strcmp 函数时,出现错误“没有匹配函数调用 'strcmp'
bool checkIfSameMedicine (char str1[], char str2[][MAXSIZE])
{
for (int i = 0; i <= 3; i++)
{
if (strcmp(str2, str1))
{
return true;
}
return false;
}
}
你至少要写
for (int i = 0; i <= 3; i++)
{
if (strcmp(str2[i], str1) == 0)
{
return true;
}
}
return false;
尽管由于使用了幻数 3
,代码看起来不太好。
函数应该像
那样声明和定义
bool checkIfSameMedicine( const char str2[][MAXSIZE]), size_t n, const char str1[] )
{
size_t i = 0;
while ( i != n && strcmp( str2[i], str1 ) != 0 ) ++i;
return n != 0 && i != n;
}
我需要在我输入的二维数组中搜索一个词,但是当我使用 strcmp 函数时,出现错误“没有匹配函数调用 'strcmp'
bool checkIfSameMedicine (char str1[], char str2[][MAXSIZE])
{
for (int i = 0; i <= 3; i++)
{
if (strcmp(str2, str1))
{
return true;
}
return false;
}
}
你至少要写
for (int i = 0; i <= 3; i++)
{
if (strcmp(str2[i], str1) == 0)
{
return true;
}
}
return false;
尽管由于使用了幻数 3
,代码看起来不太好。
函数应该像
那样声明和定义bool checkIfSameMedicine( const char str2[][MAXSIZE]), size_t n, const char str1[] )
{
size_t i = 0;
while ( i != n && strcmp( str2[i], str1 ) != 0 ) ++i;
return n != 0 && i != n;
}