c语言大小写字母转换

#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);
} /*有错误吗?为什么无法生效*/

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同上。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-11-18

你写的这个函数存在问题。参数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 '!'; //输入的不是字母时返回错误
}

本回答被网友采纳
第2个回答  2016-11-18
#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;

本回答被提问者采纳
第3个回答  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);
}

第4个回答  2016-11-18
scanf("%d",&a);
printf("%c",a);
由于scanf输入%c是不行的,可以考虑getchar函数。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网