题目描述
输入一串字符,将其中的大写变成小写,若不为大写则原样输出
输入格式
任意字符串(长度在100以内)以回车表示输入结束
输出格式
将其中的大写 输出相应的小写,若不为大写则原样输出
样例输入
A123b
样例输出
a123b
本题就是字母的大小写转换问题,有两种解法,第一种是把输入的数据当作字符,输入用while多组输入,使用ch=getchar且不等于’\n‘作为循环条件,因为getchar会识别换行符并直接取走,大写转小写就是ASCII值增32,最后输出字符,如下所示:
#include<stdio.h> //
int main()
{
char ch;
while((ch=getchar())!='\n'&&ch!=EOF)
{
if(ch>='A'&&ch<='Z')
ch+=32;
printf("%c",ch);
}
return 0;
}
第二种是通过数组输入输出字符串,用gets,puts输入输出用strlen计算数组长度;;也可以不用strlen,用a[i]!=0做for循环的条件
#include<stdio.h>
#include<string.h>//要用strlen计算数组长度
int main()
{
int i;
char a[100];
gets(a);
int len=strlen(a); //78行位置不可互换
for(i=0;i<len;i++) //也可以换成这个循环,省去计算数组长度步骤for(i=0;a[i]!='\0';i++)
{
if(a[i]>='A'&&a[i]<='Z')
a[i]+=32;
}
puts(a);
return 0;
}
鄙人拙作,如有不当,还请指教
如有裨益,吾之幸哉