c++ - C++ 运算符 '==' 无法将 string[i] 与另一个字符串进行比较。编译错误
问题描述
#include <iostream>
using namespace std;
int main()
{
string str = "abcdef";
string x = "a";
if (str[0] == x) {
//do something...
}
return 0;
}
并且无法编译。
“错误:'operator==' 不匹配(操作数类型是 '__gnu_cxx::__alloc_traits, char>::value_type' {aka 'char'} 和 'std::string' {aka 'std::__cxx11::basic_string '})"
解决方案
std::string
除了作为字符串之外,还提供了作为char
s的容器的接口。因此,当您使用此容器中的operator[]
访问和个人char
时,您无法将 achar
与字符串进行比较。如果您想要一个符号字符串,而不是使用std::string::substr()
长度为 1 的符号。或者如果您希望符号与另一个符号进行比较,请声明x
为单个char
而不是字符串。
推荐阅读
- azure - 天蓝色是否为容器中上传的所有 blob 计算 md5 校验和?
- jquery - Cheerio 从一个隐藏在 AccordionSummaryToggle 后面的 HTML 页面获取 FAQ Q/A
- php - 如何将array_chunk mysqli结果一次分成100个块
- julia - DifferentialEquations.jl 中的回调函数选择问题
- .net - 分支中的 Azure .yaml 管道文件策略
- node.js - momentjs 的 UTC 日期格式
- c# - 在 shopify 中发布一系列产品
- sql - MS SQL 中的 in 语句中的 Case 语句
- react-native - react-native-maps 标注内容未在更改时更新
- r - roll_meanr 使用 group_by() 返回 NA