4

ユーザーが入力した文字列があり、文字列内の文字asdfgh\hjのインデックスを見つけたいとします\。Cでどうやってそれを行うことができますか?

strchr()関数 asを試しましstrchr("asdfgh\hj",'\')たが、コンパイラがエラーをスローします。

次に==、演算子を使用しましたが、同じ問題が発生しました。コンパイラは再びエラーをスローします。

4

4 に答える 4

6

strchr()関数 asを試しましstrchr("asdfgh\hj",'\')たが、コンパイラがエラーをスローします

それは正しい機能です!エラーが発生する理由\は、特殊な「エスケープ」文字であるためです。newline などの「特殊な」印刷不可能な文字を定義するために使用されます\n。そのため、次の\ようにバックスラッシュ自体をエスケープする必要があります。

strchr("asdfgh\\hj",'\\')
于 2014-02-06T19:37:05.323 に答える
1

これを試して:

strchr("asdfgh\\hj",'\\')
于 2014-02-06T19:36:51.183 に答える
1

C 標準は、C11 6.4.4.4 と述べています。

二重引用符"と疑問符?は、それぞれ単独で、またはエスケープ シーケンス\"とで表現できます\?が、一重引用符'とバックスラッシュは、それぞれエスケープ シーケンスと\ で表現する必要があります。 \'\\

だから使う

strchr("asdfgh\\hj",'\\')  

代わりは。

于 2014-02-06T19:39:12.563 に答える