我有二维字符串数组,所以这里有一个例子:
string arr[26][4];
arr[0][0] = 'A';
char t1 = arr[0][0];
错误:无法在初始化中将“std::string”转换为“char”|
最好的方法是什么?
你已经这样声明arr
了:
std::string arr[N][M];
以下内容有效,因为std::string
有一个operator=
需要 a 的重载char
:
arr[0][0] = 'A';
这导致位置处的字符串0,0
被设置为仅包含A
.
但是,没有从 astd::string
到 a 的直接转换char
,正如您在这一行中尝试做的那样:
char temp = arr[0][0];
相反,如果您希望字符串的第一个字符位于 position 0,0
,则必须执行以下操作:
char temp = arr[0][0][0];
首先arr[0][0]
访问位置处的字符串,0,0
然后访问该字符串[0]
的第一个字符。