为什么我无法使用索引访问字符串单个字符

问题描述

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

解决方法

这行没有意义:

sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf-available/phpmyadmin.conf

sudo ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin

sudo /etc/init.d/apache2 restart

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

int

auto temp = strMap[digitmapIndex]; 开始,您可以通过索引访问其字符。