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;
}