嘗試將字串文字與 C 中的字元文字連接時,可能會發生意外行為。例如:
<code class="cpp">string str = "ab" + 'c'; cout << str << endl;</code>
此程式碼會產生不可預測的輸出,因為沒有定義「」運算子來組合字串文字和字元文字。相反,編譯器將字串文字視為 C 樣式字串(const char 指標),並將字元文字的提升 int 值新增至字串文字的位址。這會導致未定義的行為。
要避免此問題,請在連接之前將字元文字明確轉換為字串:
<code class="cpp">std::string str = std::string("ab") + 'c';</code>
或者,使用連接來實現所需的結果:
<code class="cpp">std::string str = "ab"; str += 'c';</code>
在第二個程式碼片段中,字串物件有一個重載的「」運算符,用於執行預期的連接。
以上是如何在 C 中連接字串文字和字元文字?的詳細內容。更多資訊請關注PHP中文網其他相關文章!