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~

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