输入一个字符,判断是否为大写字母?

如果是,把它转化成小写字母,如果不是,不转换。为什么我这个是错的... 如果是,把它转化成小写字母,如果不是,不转换。
为什么我这个是错的
展开
 我来答
靓雄宝8048

2022-06-29 · 贡献了超过537个回答
知道答主
回答量:537
采纳率:50%
帮助的人:17.1万
展开全部
//仅供参考#include int main(){char a;scanf ("%c", &a);if (a >= 'A' && a
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
创作者2vT68wHsw5

2022-06-29 · 贡献了超过420个回答
知道答主
回答量:420
采纳率:0%
帮助的人:12.6万
展开全部
//仅供参考#include int main(){char a;scanf ("%c", &a);if (a >= 'A' && a
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
吻源嘞4326

2022-06-29 · 贡献了超过450个回答
知道答主
回答量:450
采纳率:0%
帮助的人:14.3万
展开全部
//仅供参考#include int main(){char a;scanf ("%c", &a);if (a >= 'A' && a
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cdyzxy
2020-09-15 · TA获得超过2.1万个赞
知道大有可为答主
回答量:1.4万
采纳率:85%
帮助的人:3773万
展开全部
c语言的赋值语句提交计算机执行时,仅完成赋值操作,计算机不会记录赋值的式子以等式形式在后面的程序中使用,因此,cn=ch+32;这个语句在ch还未赋值的情况下(scanf语句尚未执行)进行计算和赋值,会导致ch中的数据不可预测(Debug情况下其值等于0,exe执行时,要看ch变量位置以前其他程序运行遗留数据的取值了)。
从程序来说,你对ch进行了大写字母的判断,如果是大写并未进行转换计算,仅进行打印一般是不满足题目要求的。
如果ch中存放了大写字母,那么ch减去大写字母A的ASCII码,得到ch原来字母是第几个字母,要转换成相应小写字母,可以加小写字母a的ASCII码。
建议:
char ch;
scanf("%c",&ch); if ( ch>='A' && ch<='Z' ) { ch-='A'; ch+='a'; }
printf("%c\n",ch);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百好佳
2020-09-15 · TA获得超过301个赞
知道小有建树答主
回答量:702
采纳率:75%
帮助的人:184万
展开全部
#include<stdio.h>
int main(void)
{
char ch;
scanf("%c",&ch);
if(ch>='A' && ch<='Z')
printf("%c",ch+32);
else
printf("%c",ch);
return 0;
}

scanf("%c",&ch);语句之后不会回溯给cn赋值,而是往下执行;所以你这么写输出的是乱码;
根据c语言的特性,变量分配空间的时候不会清零,所以cn是个残留的垃圾值,在垃圾值上加32也没有意义;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式