C++ 單雙引號區別

贏家只關注怎麼贏,輸家只關注贏家在幹嘛

自己從 Python 轉 C++,一個很嚴重的問題是搞不清引號怎麼用。在 Python 中,單雙引號無所謂,隨便用,只要別混用就好。但是 C++ 明顯不同,剛好今天做 leetcode 時結結實實踩了一個坑,所以記錄在這邊。

今天遇到的問題是類似這樣的:

string s;
// s賦值語句省略
for(auto str : s) {
    if (str == " ") {
       // 處理語句
    }
}

這樣寫會編譯報錯。
開始以爲是字符串不能用等於號直接比較。就去找了一下,找到了 strcmpstrncmp兩個函數,但後來發現它們是C語言中的。又去找其他原因,最終終於在某個示例代碼中找到了if語句中的字符串比較語句,發現是單引號的。

具體來講,C++中單雙引號的區別可以記住一條原則:

單引號會創建一個單字符,而雙引號則創建一個字符串常量

大概的意思,舉個例子:
在C++中,’c‘ 就代表 c這個字符,而 ”c“ 則代表 ’c’ + ‘\0’,其中 ‘\0’ 爲字符串的結尾。

不過還是順帶提一句,C++中比較依然不像 Python 那麼方便,所以使用的時候還是多加註意,over~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章