嘗試在 C 中連接字串文字與字元文字時,可能會出現意外行為。例如:
string str = "ab" 'c';
cout 此程式碼會產生不可預測的輸出,因為沒有定義「」運算子來組合字串文字和字元文字。相反,編譯器將字串文字視為 C 樣式字串(const char 指標),並將字元文字的提升 int 值新增至字串文字的位址。這會導致未定義的行為。
要避免此問題,請在連接之前將字元文字明確轉換為字串:
std::string str = std::string("ab") 'c';
或者,使用串聯來實現所需的結果:
std::string str = "ab";
str = 'c';
在第二個程式碼片段中,字串物件有一個重載的「」運算符,用於執行預期的連接。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3