2011-10-27 69 views
2

有没有办法将数字字符串转换为包含该值的char?例如,字符串“128”应转换为char,其值为128十进制字符串到字符

+1

如果字符串中的数值是'< 0' or '> 255',会发生什么? – 2011-10-27 18:51:29

+0

可能的重复[如何解析一个字符串到一个int在C + +?](http://stackoverflow.com/questions/194465/how-to-parse-a-string-to-an-int-in-c) –

+0

@WTP数字在该范围内。 – Sinjuice

回答

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; 
5

是...的atoi从C

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); 
0

您可以使用atoi。这会得到128位的整数。你可以将其转换为char,就完成了。

char c = (char) atoi("128"); 
1

这取决于。如果char签署和8位,你不能将“128”到char 10为基数有符号的8位值的最大正值为127

这是一个非常迂腐的答案,但你应该在某个时候知道这一点。

相关问题