2011-10-27 68 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

這是一個非常迂腐的答案,但你應該在某個時候知道這一點。

相關問題