假设我有一个由用户asdfgh\hj
输入的字符串,我希望找出字符串中\
字符的索引。我如何在C中做到这一点?在C中,如何在字符串中找到''字符?
我试过strchr()
函数作为strchr("asdfgh\hj",'\')
但编译器抛出一个错误。
然后,我使用==
运算符,但它的同样的问题 - 再次编译器抛出一个错误。
假设我有一个由用户asdfgh\hj
输入的字符串,我希望找出字符串中\
字符的索引。我如何在C中做到这一点?在C中,如何在字符串中找到''字符?
我试过strchr()
函数作为strchr("asdfgh\hj",'\')
但编译器抛出一个错误。
然后,我使用==
运算符,但它的同样的问题 - 再次编译器抛出一个错误。
我试图
strchr()
功能strchr("asdfgh\hj",'\')
但编译器会引发错误
这才是正确的功能!你得到一个错误的原因是因为\
是一个特殊的“逃跑”字符。它用于定义“特殊”非打印字符,如换行符\n
。这就是为什么\
需要转义反斜杠本身,就像这样:
strchr("asdfgh\\hj",'\\')
在C中,反斜杠用于硬键入的字符,如\n
。所以,你需要写\\
为\
本身:
char *backslash = strch("some text containing \\ ...", '\\');
注意,在字符串中您所提供的\
还需要writen \\
否则将被视为\h
这是没有意义的。
Bro这个字符串是用户在运行时输入的。假设他/她输入了“asdfgh \ hj”。那我怎样才能把它改成“asdfgh \\ hj”。 @dasblinkenlight – ranaarjun
@ranaarjun如果用户输入字符串,则不需要更改任何内容。只有编译器才需要斜杠。所以如果你调用'strchr(userString,'\\')'你会得到一个指向正确位置的指针。 – dasblinkenlight
@ranaarjun你说编译器会抛出一个错误。如果字符串是由用户输入的,那么错误不可能与转义有关。因此,不仅是您的原始邮件欺骗,但你需要告诉我们你得到的实际错误。 – 2014-02-06 19:45:13