假设我有一个用户输入的字符串asdfgh\hj,我希望找出\字符串中字符的索引。我怎么能在C中做到这一点?
我尝试了strchr()函数 asstrchr("asdfgh\hj",'\')但编译器抛出错误。
然后我使用==了运算符,但同样的问题 - 编译器再次抛出错误。
我尝试了
strchr()函数 asstrchr("asdfgh\hj",'\')但编译器抛出错误
这是正确的功能!您收到错误的原因是因为\是一个特殊的“转义”字符。它用于定义“特殊”的不可打印字符,例如换行符\n。这就是为什么反斜杠本身\需要转义,如下所示:
strchr("asdfgh\\hj",'\\')
C标准说,C11 6.4.4.4:
双引号
"和问号?可以分别由它们本身或转义序列\"and表示\?,但单引号'和反斜杠\应分别由转义序列\'and表示\\。
所以使用
strchr("asdfgh\\hj",'\\')
反而。
在 C 中,反斜杠用于硬类型字符,例如\n. 所以你需要为\\自己写\:
char *backslash = strch("some text containing \\ ...", '\\');
请注意,在您提供的字符串中\也需要写入,\\否则将被视为\h没有意义。
尝试这个:
strchr("asdfgh\\hj",'\\')