贏家只關注怎麼贏,輸家只關注贏家在幹嘛
自己從 Python 轉 C++,一個很嚴重的問題是搞不清引號怎麼用。在 Python 中,單雙引號無所謂,隨便用,只要別混用就好。但是 C++ 明顯不同,剛好今天做 leetcode 時結結實實踩了一個坑,所以記錄在這邊。
今天遇到的問題是類似這樣的:
string s;
// s賦值語句省略
for(auto str : s) {
if (str == " ") {
// 處理語句
}
}
這樣寫會編譯報錯。
開始以爲是字符串不能用等於號直接比較。就去找了一下,找到了 strcmp
和 strncmp
兩個函數,但後來發現它們是C語言中的。又去找其他原因,最終終於在某個示例代碼中找到了if
語句中的字符串比較語句,發現是單引號的。
具體來講,C++中單雙引號的區別可以記住一條原則:
單引號會創建一個單字符,而雙引號則創建一個字符串常量
大概的意思,舉個例子:
在C++中,’c‘ 就代表 c
這個字符,而 ”c“ 則代表 ’c’ + ‘\0’,其中 ‘\0’ 爲字符串的結尾。
不過還是順帶提一句,C++中比較依然不像 Python 那麼方便,所以使用的時候還是多加註意,over~