ユーザーが入力した文字列があり、文字列内の文字asdfgh\hj
のインデックスを見つけたいとします\
。Cでどうやってそれを行うことができますか?
strchr()
関数 asを試しましstrchr("asdfgh\hj",'\')
たが、コンパイラがエラーをスローします。
次に==
、演算子を使用しましたが、同じ問題が発生しました。コンパイラは再びエラーをスローします。
strchr()
関数 asを試しましstrchr("asdfgh\hj",'\')
たが、コンパイラがエラーをスローします
それは正しい機能です!エラーが発生する理由\
は、特殊な「エスケープ」文字であるためです。newline などの「特殊な」印刷不可能な文字を定義するために使用されます\n
。そのため、次の\
ようにバックスラッシュ自体をエスケープする必要があります。
strchr("asdfgh\\hj",'\\')
これを試して:
strchr("asdfgh\\hj",'\\')
C 標準は、C11 6.4.4.4 と述べています。
二重引用符
"
と疑問符?
は、それぞれ単独で、またはエスケープ シーケンス\"
とで表現できます\?
が、一重引用符'
とバックスラッシュは、それぞれエスケープ シーケンスと\
で表現する必要があります。\'
\\
だから使う
strchr("asdfgh\\hj",'\\')
代わりは。