strpbrk函数-C
我试图从给定字符的出现处断开一个字符串。我正在使用strpbrk函数。但是我得到了这个错误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函数的
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会生成一个警告,但无需对其进行限定。