剛學c++的弟弟,發現以下問題:
#include <iostream>
#include <string>
#include <vector>
#include <cctype>
using namespace std;
int main(){
string text="Good mornig!";
for(auto it=text.begin();it!=text.end();++it){
char c=*it;
cout<<toupper(c);}
return 0;
}
這時候輸出是這樣的:

但如果把toupper放在等號右邊:
c=toupper(c);
cout<<c;
則正常輸出;

為啥啊?
uj5u.com熱心網友回復:
因為toupper函式的回傳值是int型別,所以直接輸出就是整形值,但如果用c=toupper的話,int被轉成char型別,輸出就是字符型別uj5u.com熱心網友回復:
你用c=toupper(c);是相當于隱式地把int轉成了char
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/137730.html
標籤:新手樂園
上一篇:哪位大佬分析一下這題的演算法
下一篇:求大神,讓預習,網上也搜不到
