【问题标题】:Why I am not able to access string individual chars using index为什么我无法使用索引访问字符串单个字符
【发布时间】:2021-05-15 14:56:12
【问题描述】:
string strMap[8] = {"abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz"};
//string digits received as parameter in function // digits = "234";

如下访问它:

int digitmapIndex = digits[index] - 46;   //index is some int 0,1 etc..
int mapstr_len = strMap[digitmapIndex];

int mapstr_len = strMap[digits[index] - 46];

错误:

Line 25: Char 13: error: no viable conversion from 'std::string' (aka 'basic_string<char>') to 'int'
        int mapstr_len = strMap[digits[index] - 46];
            ^            ~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/basic_string.h:816:7: note: candidate function
      operator __sv_type() const noexcept

【问题讨论】:

  • strMap[digitmapIndex]std::string 编译器无法自动将其转换为整数。
  • 通过你的变量命名你想要:int mapstr_len = strMap[digitmapIndex].length();
  • 是的..知道了。愚蠢的错误

标签: c++ string c++11


【解决方案1】:

这行没有意义:

int mapstr_len = strMap[digitmapIndex];

strMap[digitmapIndex] 是一个string 对象,不能分配给int

auto temp = strMap[digitmapIndex];

temp,您可以通过索引访问其字符。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-06-22
    • 2019-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-08
    • 2016-02-27
    相关资源
    最近更新 更多