2021蓝桥杯真题大写 C语言/C++
题目描述
给定一个只包含大写字母和小写字母的字符串,请将其中所有的小写字母转换成大写字母后将字符串输出。
输入描述
输入一行包含一个字符串。
输出描述
输出转换成大写后的字符串。
输入输出样例
示例
输入
LanQiao
输出
LANQIAO
评测用例规模与约定
对于所有评测用例,字符串的长度不超过 100。
运行限制
最大运行时间:1s
最大运行内存: 256M
所需变量
char arr[100];//用于接收每个字符
int i = 0;//循环变量,初始化为0
思路:因为是字符数组,因此我们要知道判断终止条件
while(~scanf("%c",&arr[i])){
if(arr[i] == '\n'){
break;
}
得到整个字符串后,我们的做法就是对于每个小写字母我们都将其变成大写字母!
if(arr[i]>='a'&&arr[i]<='z'){
arr[i] -= 32;
}
最后将每个输入的数都把小写字母都变成大写字母后,我们就将每个字符都输出出来就可以!
代码如下(编译器是dev,语言是C语言):
做法一(C语言):
#include <iostream>
using namespace std;
#include<string.h>
int main()
{
char arr[100];
int i = 0;
while(~scanf("%c",&arr[i])){
if(arr[i] == '\n'){
break;
}
if(arr[i]>='a'&&arr[i]<='z'){
arr[i] -= 32;
}
i++;
}
for(int j = 0;j<i;j++){
printf("%c",arr[j]);
}
printf("\n");
return 0;
}
做法二(C++):
#include <iostream>
using namespace std;
#include<string.h>
int main()
{
string a;
cin>>a;
for(int i = 0;i<a.length();i++){
if(a[i]>='a'&&a[i]<='z'){
a[i] -= 32;
}
}
cout<<a<<endl;
return 0;
}