使用strchr()给出错误

时间:2014-02-08 06:39:38

标签: c++ strchr

我试图在其他字符串(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()函数时遇到的问题。

1 个答案:

答案 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)