我试图从给定角色的出现中打破一个字符串。我正在使用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函数的行中出现此错误。请帮帮我。
答案 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。