簡體   English   中英

在C ++中向字符串添加標點符號

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM