c ++简介:自学

时间:2010-12-03 22:28:56

标签: c++

我为我的程序获得了以下代码的帮助。我正在工作,谢谢'paxdiablo'。它仍然在结果中显示'\'字符。我该如何解决? (不知道如何回复'paxdiablo'给sya谢谢。

if (strchr (",.();:-\"&?%$![]^@~`{}_<>/#*_+=", curChar) != NULL)//new change
{
   paragraph.erase(subscript, 1);
   numWords-=1;
}
else 
   subscript+=1;

}

5 个答案:

答案 0 :(得分:5)

不是C专家,但尝试转义\

if (strchr ("\\,.();:-\"&?%$![]^@~`{}_<>/#*_+=", curChar) != NULL)//new change

答案 1 :(得分:2)

查看您匹配的字符串中是否包含\"

这是一个转义序列。它告诉C ++编译器,“我希望"符号在此字符串文字中”。您必须以这种特殊方式说出这一点,因为通常"标记字符串的结尾。

\字符是特殊的,因为它启动所有这些转义序列。因此,如果您希望它出现在字符串中,您也必须使用转义序列。否则,编译器会认为您正在启动其他转义序列。

奇怪的是,\的转义序列是\\

答案 2 :(得分:1)

如果你想删除'\',你想要这样做:

if (strchr (",.();:-\\\"&?%$![]^@~`{}_<>/#*_+=", curChar) != NULL)

原始行的原因是\"实际上是"的转义。要添加实际\,您需要执行\\以逃避它。

答案 3 :(得分:1)

\是一个转义字符(它正在逃避&#34;)。将\\添加到您的字符串中,它应该可以正常工作。

if (strchr (",.();:-\"&?%$![]^@~`{}_<>/#*_+=\\", curChar) != NULL)

答案 4 :(得分:1)

尝试转义它:\\而不仅仅是\