c语言大小写字母转换

#include<stdio.h>intmain(void){inta,b;scanf("%c",&a);b=su(a,b);printf("%c",b);}intsu(... #include <stdio.h>
int main(void)
{
int a,b;
scanf("%c",&a);
b=su(a,b);
printf("%c",b);
}
int su(int a,int b)
{
if (a>91) b=a-32;
else b=a+32;
return(b);
} /*有错误吗?为什么无法生效*/
展开
 我来答
世秀梅眭姬
2019-06-24 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.2万
采纳率:25%
帮助的人:966万
展开全部
c1的值从键盘输入,也就是你要转换的大写字母,在ASCII码表中,A-Z的ASCII码值是65-90,a-z的ASCII码值是97-122,而且在ASCII码表中,这些字母的ASCII码值也是按顺序排列的,所以你输入c1的值加上32以后正好是它对应的小写字母的ASCII码值,printf("%c,%d\n",c1,c1);中“c%”输出的是c1的字符型值,也就是你从键盘输入的大写的c1,“d%”输出的是它对应的ASCII值,c2同上。
GTA小鸡
高粉答主

2016-11-18 · 醉心答题,欢迎关注
知道大有可为答主
回答量:2.6万
采纳率:78%
帮助的人:1.3亿
展开全部

你写的这个函数存在问题。参数a以及函数返回值的类型不对。参数b是无用的也不需要。另外函数在使用前没有声明。

#include <stdio.h>
char su(char);
int main(void)
{
char a;
scanf("%c",&a);
printf("%c",su(a));
}
char su(char a)
{
if(a>='A'&&a<='Z') return a+32;
else if(a>='a'&&a<='z') return a-32;
else return '!'; //输入的不是字母时返回错误
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
My_Persistence
2016-11-18 · TA获得超过3467个赞
知道大有可为答主
回答量:1201
采纳率:81%
帮助的人:431万
展开全部
#include <stdio.h>
char su(char a); //函数原型声明
int main(void)
{
char a,b; //改成char型
a=getchar();
b=su(a);
printf("%c\n",b);
return 0;
}
char su(char a)
{
char b;
if(a>='a' && a<='z')
b=a-32;
else if(a>='A' && a<='Z')
b=a+32;
return b;
}

示例运行结果:

a

A

B

b

追问
第一个return 后面是什么
追答
return 0;
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2016-11-18
展开全部
#include <stdio.h>
int su(int a,int b);//<========
int main(void)
{
int a,b;
scanf("%c",&a);
b=su(a,b);
printf("%c",b);
}
int su(int a,int b)
{
if (a>91) b=a-32;
else b=a+32;
return(b);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
阳光的雷咩咩
2016-11-18 · TA获得超过1.4万个赞
知道大有可为答主
回答量:2.3万
采纳率:66%
帮助的人:7813万
展开全部
scanf("%d",&a);
printf("%c",a);
由于scanf输入%c是不行的,可以考虑getchar函数。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式