-1

我试图从给定字符的出现中断开一个字符串。我正在使用 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

4 回答 4

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;
}
于 2012-07-20T16:05:53.060 回答
0

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

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

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

于 2012-07-20T16:03:15.907 回答
0

您将 strpbrk 的第二个参数传递给一个字符,而不是一个指向字符的指针。

你需要调用 strpbrk (horses, h)

于 2012-07-20T16:03:30.917 回答
0

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

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

但是你正在通过它马和h[0]h[0]不是一个char *,它实际上是一个char。如果你只是通过它,h你会没事的。

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

于 2012-07-20T16:07:03.143 回答