十进制字符串到char

时间:2011-10-27 18:46:29

标签: c++ string char

有没有办法将数字字符串转换为包含该值的char?例如,字符串“128”应转换为保留值char的{​​{1}}。

4 个答案:

答案 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");