如果字符串没有,我正在创建一个为字符串添加标点符号的函数。我认为我已经完成了所有事情并且程序编译得很好,但无论我将字符串设置为什么,总会添加额外的标点符号。
源代码:
// Word Parsing
if(
str_input.substr(str_input.length()-1, 1) != "." ||
str_input.substr(str_input.length()-1, 1) != "?" ||
str_input.substr(str_input.length()-1, 1) != "!"
) {
cout << str_input.substr(str_input.length()-1, 1) << endl;
str_input = str_input+".";
}
答案 0 :(得分:2)
您应该将||
替换为&&
。
以您的示例为例,如果您的字符串以“?”结尾它将与“。”不同,您将输入if
声明。
您希望确保您的角色与“。”不同。 AND “?” AND “!”。
if(
str_input.substr(str_input.length()-1, 1) != "." &&
str_input.substr(str_input.length()-1, 1) != "?" &&
str_input.substr(str_input.length()-1, 1) != "!"
)
{
// Do your stuff
}
答案 1 :(得分:1)
我相信你的代码会更简单,你使用的是“不是这些”逻辑:
char ending_char = str_input.substr(str_input.length()-1, 1);
if ( ! ((ending_char == '!') || (ending_char == '.') || (ending_char == '?")))
{
cout << ending_char << endl;
str_input += ending_char;
}