C语言 大小写字母转换
发布网友
发布时间:2022-04-21 03:41
我来回答
共4个回答
热心网友
时间:2022-06-17 19:28
上面源程序的功能是实现大写字母转换为小写字母。
定义两个字符变量c1,c2,语句c1=getchar();要求输入一个大写字母的字符,比如输入a,由于字符a的ascll是65,执行语句printf("%c,%d\n",c1,c1);此时会输出a,65,由于任何小写字母的ascll值比其对应的大写字母大32,则根据语句c2=c1+32;把字符a的ascll值加32,变为97,对应的就是字符a,即大写字母a的小写形式,在赋给c2,最后执行printf("%c,%d\n",c2,c2);输出a,97.
热心网友
时间:2022-06-17 19:29
#include<stdio.h>
void
main()
{
char
a,A;
scanf("%c",&a);
if(
(a>='a')
&&
(a
<=
'z')
)
A=a-32;
else
if(
(a
>=
'A')
&&
(a
<=
'Z')
)
A=a+32;
else
A
=
'A';
printf("%c\n",A);
return
0;
}
说明:你原来的地方有两处错误,第一,scanf(
"%c",
&a
);中,&是取地址操作符,也就是只有你这样做,输入的字符才能被编译器根据取到的地址,把字符值送进内存里去。所以if(&a>='a')
是错误的,应该改为a而不是&a。第二,逻辑错误,只有你写的if中得条件,没考虑其他的异常处理,怎么可以?逻辑思考要完整些
热心网友
时间:2022-06-17 19:29
改成下面这样:
#include<stdio.h>
void
main()
//空返回函数不用return
{
char
a,A;
scanf("%c",&a);
if(a>='a')
//这里把&a改成a
地址和int不能比较
A=a-32;
else
A=a+32;
printf("%c\n",A);
}
热心网友
时间:2022-06-17 19:30
还有我看不到上面代码根据什么来实现大小写转换的
#include<stdio.h>
void
main()
{
char
c1,c2;
//
定义两个字符c1,c2
c1=getchar();