P8761 [蓝桥杯 2021 国 BC] 大写 题解
题意
给定一个字符串,将所有字母转化为大写输出。
解法
方法 1
直接使用 ASCII 码值判断转换。
#include<bits/stdc++.h>
using namespace std;
char a[102];//也可以使用 string
int main(){
cin>>a;
for(int i=0; i<strlen(a); i++) if(a[i]<=122 && a[i]>=97) a[i]-=32;//判断并转换
cout<<a;
return 0;
}
方法 2
在 c++ 中,可以使用用单引号求出字符对应的 ASCII 码值。
#include<bits/stdc++.h>
using namespace std;
char a[102];//也可以使用 string
int main(){
cin>>a;
for(int i=0; i<strlen(a); i++) if(a[i]<='z' && a[i]>='a') a[i]+='A'-'a';//判断并转换
cout<<a;
return 0;
}
方法 3
可以使用 islower 函数判断小写字符。
#include<bits/stdc++.h>
using namespace std;
char a[102];//也可以使用 string
int main(){
cin>>a;
for(int i=0; i<strlen(a); i++) if(islower(a[i])) a[i]+='A'-'a';//判断并转换
cout<<a;
return 0;
}
方法 4
可以使用 isupper 函数判断大写字符。
#include<bits/stdc++.h>
using namespace std;
char a[102];//也可以使用 string
int main(){
cin>>a;
for(int i=0; i<strlen(a); i++) if(!isupper(a[i])) a[i]+='A'-'a';//判断并转换
cout<<a;
return 0;
}
方法 5
直接使用 toupper 函数将字母转大写。
#include<bits/stdc++.h>
using namespace std;
char a[102];//也可以使用 string
int main(){
cin>>a;
for(int i=0; i<strlen(a); i++) a[i]=toupper(a[i]);//转换
cout<<a;
return 0;
}