C ++ ::将ASCII值转换为字符串

时间:2013-09-21 23:29:47

标签: c++ string ascii

我正在尝试将表示字符ASCII值的int转换为单字符字符串。

我尝试了以下操作,但它不起作用:
string s1=(char) 97;

然而,只有当我像这样分开任务时,转换才有效:
string s1; s1=(char) 97;

我对此感到困惑,任何人都能解释其中的差异吗?


提前致谢!

1 个答案:

答案 0 :(得分:7)

  

我尝试了以下操作,但它不起作用:string s1=(char) 97;

那是因为std::string constructor没有任何需要一个char的重载。而且,复制被省略,因此直接调用构造函数,operator =()永远不会被调用(在复制省略上记录自己)。

  

转换仅在我按照以下方式拆分作业时才有效:string s1; s1=(char) 97;

现在副本不再被删除,您实际上正在调用std::string::operator =() 过载接受单char