题解 P5733 【【深基6.例1】自动修正】

· · 题解

在这里我介绍一种不用循环(即for()while()) 的方法。

首先,我给大家科普一个知识,在C++中,main()函数是可以递归的。

那我们就可以判断当前是否输入了一个字符,并检测输入字符是否为小写字母, 如果是,就将其转换成大写字母即可。转换方法就是利用ASCII码,将小写字母+'A'-'a'即可。

Code :

#include<bits/stdc++.h>
using namespace std;
char ch;
int main(){
    if(cin>>ch){//判断是否输入 
        if(ch>='a'&&ch<='z')ch+='A'-'a';//转换大小写 
        cout<<ch;//输出 
        main();//递归调用 
    } 
    return 0;//如果没有输入就退出 
}