web-dev-qa-db-ja.com

C文字列に単一の文字が存在するかどうかを確認するにはどうすればよいですか?

C文字列に単一の文字が含まれているかどうかを確認したい。文字はLinuxのパイプラインに使用される'|'です(実際、'<''>''>>''&'もチェックします)。

Java私はこれを行うことができます:

String.indexOf()

しかし、文字列全体(char*文字列)をループせずに、Cでこれを行うにはどうすればよいですか?

11
JAN

strchr はあなたの友達です。

char *strchr(const char *s, int c);

strchr関数は、cが指す文字列内で最初に出現するcharsに変換)を見つけます。

strchr関数は、検索された文字へのポインターを返します。文字が文字列に出現しない場合は、nullポインターを返します。

そしてもちろん、関数は最悪の場合(Java関数がおそらく行うように)に文字列全体をウォークスルーする必要があります。

4
undur_gongor