如果提供了+'0',如何将整数附加到字符串
我在编程问题的解决方案中遇到了一个奇怪的代码,但我找不到任何关于它的好主意。这里,
#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
即使没有对整数变量进行类型转换,整数变量计数也被附加到字符串中。我想它是因为“0”而起作用的,但是这个过程或方法是什么。
回答
即使没有对整数变量进行类型转换,整数变量计数也被附加到字符串中。
不,没有附加整数变量。+=运算符唯一适合的重载是采用单个char参数并最终向字符串添加单个字符的重载。整数值类型被转换为一个char类型,剩下的就是历史了。
因此,将 8 添加到字符中'0',不出所料,字符'8'. 当然,如果您的整数变量为负数或大于 9,事情就会朝着令人兴奋的方向发展。您应该尝试一下,结果应该很有启发性。