[英]In C how do I find the '\' character in a string?
假设我有一个用户输入的字符串asdfgh\\hj
,我希望在String中找到\\
字符的索引。 我怎么能用C做呢?
我尝试strchr()
函数作为strchr("asdfgh\\hj",'\\')
但编译器抛出错误。
然后我使用==
运算符,但同样的问题 - 再次编译器抛出错误。
我尝试
strchr()
函数作为strchr("asdfgh\\hj",'\\')
但编译器抛出错误
这是正确的功能! 您收到错误的原因是因为\\
是一个特殊的“转义”字符。 它用于定义“特殊”不可打印字符,例如换行符\\n
。 这就是反斜杠本身\\
需要转义的原因,如下所示:
strchr("asdfgh\\hj",'\\')
尝试这个:
strchr("asdfgh\\hj",'\\')
C标准说,C11 6.4.4.4:
双引号
"
和问号?
可以通过它们自己或转义序列来表示\\"
和\\?
分别,但单引号'
和反斜杠\\
应表示,分别由转义序列\\'
和\\\\
。
所以使用
strchr("asdfgh\\hj",'\\')
代替。
在C中,反斜杠用于\\n
等硬类型字符。 所以你需要为\\
本身写\\\\
:
char *backslash = strch("some text containing \\ ...", '\\');
请注意,在您提供的字符串中\\
也需要写入\\\\
否则它将被视为\\h
,这没有任何意义。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.