在C中如何在字符串中找到'\'字符?

时间:2014-02-06 19:35:13

标签: c string strchr

假设我有一个由用户asdfgh\hj输入的字符串,我希望在字符串中找到\字符的索引。我怎么能在C中做到这一点?

我尝试strchr()函数为strchr("asdfgh\hj",'\'),但编译器抛出错误。

然后我使用了==运算符,但是同样的问题 - 编译器再次抛出错误。

4 个答案:

答案 0 :(得分:6)

  

我尝试strchr()函数为strchr("asdfgh\hj",'\')但编译器抛出错误

这是正确的功能!您收到错误的原因是\是一个特殊的“转义”字符。它用于定义“特殊”不可打印字符,例如换行符\n。这就是反斜杠本身\需要转义的原因,如下所示:

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

答案 1 :(得分:1)

试试这个:

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

答案 2 :(得分:1)

C标准说,C11 6.4.4.4:

  

双引号"和问号?可以自己或通过   转义序列分别为\"\?,但单引号'和反斜杠\   应分别由转义序列\'\\表示。

所以使用

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

代替。

答案 3 :(得分:1)

在C中,反斜杠用于像\n这样的硬类型字符。因此,您需要为\\本身编写\

char *backslash = strch("some text containing \\ ...", '\\');

请注意,在您提供的字符串中,\也需要写入\\,否则将被视为\h没有任何意义。