[英]Add punctuation to string in c++
我正在制作一個將標點符號添加到字符串的函數,如果該字符串沒有的話。 我認為我已經正確地完成了所有操作,並且程序可以正常編譯,但是無論我將字符串設置為什么,總是會添加額外的標點符號。
源代碼:
// 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+".";
}
您應該替換||
與&&
。
在您的示例中,如果您的字符串以“?”結尾 它與“。”不同,您將輸入if
語句。
您要確保您的字符與“。”不同。 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
}
我相信,如果您使用“以下任意一項”邏輯,您的代碼會更簡單:
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;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.