2013-09-21 256 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

明白了。谢谢! –