有没有办法将数字字符串转换为包含该值的char
?例如,字符串“128”应转换为保留值char
的{{1}}。
答案 0 :(得分:5)
是......来自C的atoi。
char mychar = (char)atoi("128");
更加面向C ++的方法将是......
template<class T>
T fromString(const std::string& s)
{
std::istringstream stream (s);
T t;
stream >> t;
return t;
}
char mychar = (char)fromString<int>(mycppstring);
答案 1 :(得分:4)
有C风格的atoi
,但它转换为int
。你必须自己投降char
。
对于C ++风格的解决方案(也更安全),您可以
string input("128");
stringstream ss(str);
int num;
if((ss >> num).fail()) {
// invalid format or other error
}
char result = (char)num;
答案 2 :(得分:1)
这取决于。如果char
已签名且为8位,则无法将“128”转换为基数10中的char
。带符号的8位值的最大正值为127.
这是一个非常迂腐的答案,但你应该在某些时候知道这一点。
答案 3 :(得分:0)
您可以使用atoi
。这将得到整数128.您可以将其转换为char
并完成。
char c = (char) atoi("128");