2013-09-21 252 views
1

我想將表示字符的ASCII值的int轉換爲單字符字符串。C++ ::將ASCII值轉換爲字符串

我嘗試了以下內容,這是行不通的:
string s1=(char) 97;

然而,轉換隻適用,如果我打散分配是這樣的:
string s1; s1=(char) 97;

我爲此感到困惑和任何人都可以解釋區別?


在此先感謝!

+0

你可以使用itos()嗎? –

+2

儘管回答您的問題並不難,下次您可能希望比單純的「*它不起作用」更精確,因爲您基本上提供了** no **關於錯誤的任何信息你得到。如果你需要幫助,你需要幫助我們幫助你。 – syam

回答

5

我嘗試了以下內容,這是行不通的:string s1=(char) 97;

這是因爲std::string constructor沒有接受單個char任何超負荷。並且,複製也被省略,所以構造函數被直接調用,operator =()永遠不會被調用(記錄在複製elision)。

轉換隻適用,如果我打散分配是這樣的:string s1; s1=(char) 97;

現在的副本沒有省略掉任何更多,你真的叫std::string::operator =()具有過載接受單char

+0

明白了。謝謝! –