如果提供了 + '0',如何将整数附加到字符串

Vai*_*hal 1 c++ string append c++-standard-library

我在编程问题的解决方案中遇到了一个奇怪的代码,但我找不到任何关于它的好主意。这里,

#include <iostream>
#include <bits/stdc++.h>

using namespace std;

int main() {
    int count=8;
    string temp="Hello ";
    temp+=count+'0';
    cout<<temp;
    return 0;
}
Output is: Hello 8
Run Code Online (Sandbox Code Playgroud)

即使没有对整数变量进行类型转换,整数变量计数也被附加到字符串中。我想它是因为“0”而起作用的,但是这个过程或方法是什么。

Sam*_*hik 5

即使没有对整数变量进行类型转换,整数变量计数也被附加到字符串中。

不,没有附加整数变量。+=运算符唯一适合的重载是采用单个char参数并最终向字符串添加单个字符的重载。整数值类型被转换为一个char类型,剩下的就是历史了。

因此,将 8 添加到字符中'0',不出所料,字符'8'. 当然,如果您的整数变量为负数或大于 9,事情就会朝着令人兴奋的方向发展。您应该尝试一下,结果应该很有启发性。