我试图在其他字符串(s2)中找到一个字符串(s1)的字符出现。
这是我的代码的一部分。
for(;i<strlen(s1);i++)
{
int x=strchr(s2,s1[i]);
if(x>0)
count++;
}
但是在编译时我得到一个指向strchr()的错误并说
error: invalid conversion from ‘char*’ to ‘int’ [-fpermissive]
任何人都可以解释使用strchr()函数时遇到的问题。
答案 0 :(得分:2)
赋值错误strchr不返回int但返回找到的字符串中第一个char的地址:
int x=strchr(s2,s1[i]);
应该是:
char* x = strchr(s2, s1[i]);
// ^ returns char*
阅读手册
char *strchr(const char *s, int c);
返回值
strchr()
和strrchr()
函数 返回指向匹配字符的指针,如果是字符则返回NULL
找不到。终止空字节被认为是 string,如果c指定为'\0'
,则这些函数返回a 指向终结符的指针。
所以:
if(x>0)
应该是:
if(x != NULL)
或仅if(x)