赢家只关注怎么赢,输家只关注赢家在干嘛
自己从 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~
网友评论