strpbrk函数-C

strpbrk函数-C,c,string,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函数的

我试图从给定字符的出现处断开一个字符串。我正在使用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函数的行中得到这个错误。请帮助我。

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

不清楚你想做什么;是否确实不需要,例如,strtok()


如果您有几个可能的分隔字符(例如H、Y和K,然后传递“HYK”),则strpbrk()非常有用。否则,strchr()会更好地为您服务。

您将strpbrk的第二个参数传递给char,而不是指向chars的指针


您需要调用strpbrk(horses,h)

您需要将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;
}
看,我看到函数看起来像这样

char * strpbrk ( const char *, const char * ); 
但是您正在传递它,并且
h[0]
h[0]
不是
char*
,它实际上是
char
。如果您刚刚通过了
h
,您就可以了


编辑:正如其他人所说,您实际上需要确保以null结尾。

1)这里大小为1的字符数组有什么意义?2) 你在找
strchr()
?我想这段代码一定不完整,你从来没有初始化horses.char*strpbrk(const char*,const char*),但是
h
,就目前的情况而言,它不是以null终止的。从非限定类型到限定类型的转换是自动进行的。gcc会生成一个警告,但无需对其进行限定。