gpt4 book ai didi

c++ - C++ 如何使用 == 比较两个字符串?

转载 作者:太空狗 更新时间:2023-10-29 23:32:48 27 4
gpt4 key购买 nike

今天我遇到了一个非常简单但令人困惑的问题。

#include <iostream>
#include <string>
using namespace std;

int main(){
string str = "123";
string a = "1";
string b = "1";

cout << ((str[0]+"") == a) << endl;
cout << (a==str.substr(0,1)) << endl;
cout << (a==b) << endl;

}

输出是:01个1

为什么第一个比较语句是错误的? c++ 在使用 == 运算符时如何比较两个字符串?

最佳答案

str[0]+""有点奇怪——你取第一个字符的数值(假设字符 '1' 的 ASCII 编码是 49),并将它添加到指向空字符串开头的指针。这给你一个无效的指针和未定义的行为。

如果你想用第一个字符组成一个字符串,那将是

string(1, str[0])
string(str, 0, 1)
str.substr(0, 1)
string() + str[0]

比较等于 a

关于c++ - C++ 如何使用 == 比较两个字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29698508/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com