gpt4 book ai didi

c++ - 如何在 C++ 中将字符串与 const 字符串进行比较

转载 作者:太空宇宙 更新时间:2023-11-04 15:59:31 24 4
gpt4 key购买 nike

假设我有以下 poc 代码:

const string& a = "hello";
string b = "l";

if(a.at(2) == b)
{
// do stuff
}

据我所知,没有匹配这些操作数的运算符“==”。并且,修复它的方法是将变量 a 的值转换为 'hello'(而不是双引号)作为 char。

但是,如果我别无选择,只能按照代码所示执行比较怎么办。是否可以?您能否就此问题提供任何指导或建议。

感谢您的回复。

最佳答案

您正在比较一个 char(具体来说是一个 const char)和一个 std::string,其中不存在( operator== ) 的重载比较运算符。

您有一些选择:

(1) 比较b的第一个字符和你想比较的字符

string b = "l";
string a = "hello";
if(a[2] == b[0]) { /* .. */ }

(2) 将a[2] 转换为std::string

string b = "l";
string a = "hello";
if(string{a[2]} == b) { /* .. */ }

(3) 设bchar

char b = 'l';
string a = "hello";
if(a[2] == b) { /* .. */ }

另外,你不应该像这样构造一个字符串对象

const string& a = "hello";

除非你真的想创建对另一个字符串对象的引用,例如

string x = "hello";
const string& a = x;

关于c++ - 如何在 C++ 中将字符串与 const 字符串进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47916094/

24 4 0
文章推荐: css - IE9 在应用边框之前不正确地使用 CSS'ing 一个 FIELDSET
文章推荐: javascript - 如何在 d3js 中查找关联日期(x 轴)与最大值(y 轴)
文章推荐: css -
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com