strpbrk函数 - C.

时间:2012-07-20 16:00:33

标签: c string

我试图从给定角色的出现中打破一个字符串。我正在使用strpbrk函数。但是我得到了这个错误

21 G:\My Programs\C\horse.cpp invalid conversion from `char' to `const char*' 

我使用的代码如下

char horses[100], h[1];

 char *brokenstring;

 h[0] = 'H';

 brokenstring = strpbrk (horses,h[0]);

我在使用strpbrk函数的行中出现此错误。请帮帮我。

4 个答案:

答案 0 :(得分:2)

您需要将const char *传递给strpbrk()的第二个参数,并且还需要使用null终止字符串。

int main( int argc, char ** argv ) {    

 char horses[100], h[2];
 char *brokenstring;

 h[0] = 'H';
 h[1]=0;   
 brokenstring = strpbrk (horses,h);
 return 0;
}

答案 1 :(得分:0)

strpbrk的第二个参数必须是字符串,而不是char。

目前尚不清楚你想做什么;你确定你不需要,例如,strtok()?

如果你有几个可能的分割字符(例如H,Y和K - 那么你传递“HYK”),

strpbrk()非常有用。否则你会更好地服务于strchr()。

答案 2 :(得分:0)

你传递了strpbrk的第二个参数char,而不是指向chars的指针。

你需要打电话给strpbrk(马,h)

答案 3 :(得分:0)

http://www.cplusplus.com/reference/clibrary/cstring/strpbrk/我看到这个函数看起来像这个

char * strpbrk ( const char *, const char * ); 

但你传递的是马匹h[0]h[0]不是char *,实际上是char。如果您刚刚通过h,那就没问题。

编辑:正如其他人所说的那样,你实际上需要确保你的空终止h。