这是我的代码。
if(strcmp(s[0][i],s[rock][j])==0)
{
count[i]+=1;
rock++;
}
答案 0 :(得分:3)
strcmp
函数比较两个字符串。如果您想比较两个char
变量,只需使用==
或!=
。
答案 1 :(得分:1)
很明显,对象s[0][i]
和s[rock][j]
的类型为char
。那是他们不是字符串而是两个字符。您可以使用运算符==
例如
if ( s[0][i] == s[rock][j] )
我也建议用这两个表达式语句替换
count[i]+=1;
rock++;
的
count[i]++;
rock++;
或
++count[i];
++rock;
在这种情况下,代码看起来更具可读性。
答案 2 :(得分:1)
我会假设这个答案是s被声明为:
char s[100][100]; // or any arbitrary numeric limits
在这种情况下,你无法使用strcmp比较s [0] [i]和s [rock] [j],因为它们是字符,而不是字符指针。
相反,你可以写:
if(s[0][i] == s[rock][j])
答案 3 :(得分:1)
char
是原始数据类型 - 您可以直接比较char
:
...
if (s[0][i] == s[rock][j])
{
...
strcmp
函数需要字符串,即char *
,因此会出现错误消息。您可以比较s
变量中的整个字符串:
...
if (strcmp(s[0], s[rock]) == 0)
{
...
答案 4 :(得分:0)
与char
进行比较时,请不要使用字符串比较功能! strcmp
函数的原型是 -
int strcmp(const char *s1, const char *s2); // where s1 and s2 are strings
因此,要与字符进行比较,只需使用==
或!=
if(s[0][i]==s[rock][j])
{
count[i]++;
rock++;
}