问题描述
为什么下面这段代码会产生不同的结果?是什么原因造成的?
string s;
s += 'a';
s += 'b';
cout<<s<<endl;//ab
s = "";
s += 'a' + 'b';
cout<<s<<endl;//question mark character
解决方法
- 当您执行
'a'+'b'
表达式时,表达式变为 'a' 的 ascii 值 + 'b' 的 ascii 值,即97+98
使结果 = 其 ascii 值为 195 (97+98) 的字符。 - 引用 -> https://www.javatpoint.com/ascii-value-in-c#:~:text=In%20C%20programming%20language%2C%20a,range%20from%200%20to%20127。和https://www.w3schools.com/charsets/ref_html_ascii.asp