我为我的程序获得了以下代码的帮助。我在工作,谢谢“paxdiablo”。它仍然在结果中显示'\‘字符。我怎么才能修复它?(不知道如何回复'paxdiablo‘给你谢谢。
if (strchr (",.();:-\"&?%$![]^@~`{}_<>/#*_+=", curChar) != NULL)//new change
{
paragraph.erase(subscript, 1);
numWords-=1;
}
else
subscript+=1;
}
发布于 2010-12-04 06:32:03
不是C语言专家,但尝试转义\
if (strchr ("\\,.();:-\"&?%$![]^@~`{}_<>/#*_+=", curChar) != NULL)//new change
发布于 2010-12-04 06:34:10
看看您匹配的字符串是如何包含\"
的?
这是一个转义序列。它告诉C++编译器,“我希望"
符号在这个字符串文字中”。您必须以这种特殊的方式来表示,因为通常情况下,"
标记字符串的末尾。
\
字符很特殊,因为它启动了所有这些转义序列。因此,如果希望它出现在字符串中,也必须使用转义序列。否则,编译器会认为您正在启动其他转义序列。
奇怪的是,\
的转义序列是\\
。
发布于 2010-12-04 06:31:54
如果您还想删除'\‘,则需要执行以下操作:
if (strchr (",.();:-\\\"&?%$![]^@~`{}_<>/#*_+=", curChar) != NULL)
原因是原来的代码行有\"
,它实际上避开了"
。要添加实际的\
,您需要执行\\
以对其进行转义。
https://stackoverflow.com/questions/4350436
复制相似问题