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

标签 c++ string ascii

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

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

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

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


提前致谢!

最佳答案

I tried the following, and it does not work: string s1=(char) 97;

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

the conversion works only if I break the assignment apart like this: string s1; s1=(char) 97;

现在拷贝不再被省略,你真的在​​调用std::string::operator =() 确实有一个重载接受单个char

关于C++::将ASCII值转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18938740/

相关文章:

javascript - 在 Node.js 中的变量中插入 ASCII

string - 为什么 utf8 与 ascii 兼容

c++ - std::priority_queue 与 std::pair<int, int>

c++ - 三元运算符中的 Nullptr

c - 如何添加两个字符串?

swift - 如何在 Swift 中将字符附加到字符串?

c++ - 多个互斥锁策略以及为什么库不使用地址比较

c++ - QtScript 输出重定向

java - 当单元格太小时,缩短 JTable 中的字符串

Java ASCII 数字问题