【发布时间】:2021-12-16 18:36:55
【问题描述】:
我正在尝试打印字符。如何将字符串转换为字符?我收到此错误:
错误:无法在赋值中将 'std::__cxx11::string {aka std::__cxx11::basic_string
}' 转换为 'char'
#include <iostream>
#include <random>
#include <string>
#include <ctime>
using namespace std;
int const MAX = 4;
string randomString(int n){// generating random letter
char alphabet[MAX] = { 'r', 'a', 'n', 'd'};
string res = "";
for (int i = 0; i < n; i++)
res = res + alphabet[rand() % MAX];
return res;
}
int main (){
srand(time(NULL));
char random;
random = randomString(1);// problem lies here
char a1 = random;
char a2 = random;
char a3 = random;
cout<<a1<< " " << a2 << " " << a3<< endl;
}
【问题讨论】:
-
randomString返回一个std::string,random是一个char。 -
std::__cxx11::string {aka std::__cxx11::basic_string}仅表示“std::string”。您的错误是“cannot convert 'std::string' to 'char' in assignment”。这是真的。std::string没有隐式转换为char。
标签: c++