【问题标题】:C++:: Convert ASCII value to string inC++:: 将 ASCII 值转换为字符串
【发布时间】:2013-09-27 03:19:42
【问题描述】:

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

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

但是,只有当我像这样拆分分配时,转换才有效:
string s1; s1=(char) 97;

我对此感到困惑,谁能解释其中的区别?


提前致谢!

【问题讨论】:

  • 你能用 itos() 吗?
  • 尽管回答您的问题并不难,但下次您可能想要比单纯的“它不起作用”更精确,因为您基本上no 提供有关您收到的错误的任何信息。如果您需要帮助,您需要帮助我们帮助您。

标签: c++ string ascii


【解决方案1】:

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

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

只有当我像这样分解分配时,转换才有效:string s1; s1=(char) 97;

现在副本不再被省略,您实际上是在调用 std::string::operator =()确实有一个接受单个 char 的重载。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-08
    • 1970-01-01
    • 1970-01-01
    • 2012-01-17
    • 2011-02-11
    相关资源
    最近更新 更多