-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()の2番目の引数に渡す必要があります。また、文字列を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

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 に答える
0

strpbrk の 2 番目の引数は、文字ではなく文字列でなければなりません。

何をしたいのか明確ではありません。strtok() など、本当に必要ないのですか?

strpbrk() は、複数の分割文字 (たとえば、H、Y、K -- なら "HYK" を渡す) がある場合に便利です。それ以外の場合は、strchr() のほうが適切です。

于 2012-07-20T16:03:15.907 に答える
0

strpbrk の 2 番目の引数に、chars へのポインターではなく、char を渡しました。

strpbrk (horses, h) を呼び出す必要があります

于 2012-07-20T16:03:30.917 に答える