使用strchr()给出错误

use of strchr() giving error

本文关键字:出错 错误 strchr 使用      更新时间:2023-10-16

我试图在另一个字符串(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()函数的问题。

分配是错误的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 找不到。终止零字节被认为是 字符串,因此,如果将C指定为'',则这些功能返回 指向终结者的指针。

等等:

if(x>0)

应该是:

if(x != NULL)

或仅if(x)

相关文章: