中易网

c语言 编程 字符型数据

答案:3  悬赏:80  
解决时间 2021-02-06 06:42
#include
main( )
{ char s[80],c='a';
int i=0;
scanf("%s",s);
while(s[i]!='\0')
{ if(s[i]==c)s[i]=s[i]-32;
else if(s[i]==c-32) s[i]=s[i]+32;
i++; }
puts(s); }

从键盘输入AhaMA(空格)Aha

为什么输出时ahAMa ,求详细解答
最佳答案
这个程序的目的是接收一个字符串 将里面的字符'A'进行大小写转换,即大写变小写 小写变大写
接收字符串时如果有空格 scanf函数会认为前一字符串已结束,所以你输入的数据读到s变量的是AhaMA。转换后当然就是ahAMa了!

所有小写字母都比对应大写字母大32 即'a' - 'A' = 32
全部回答
读一行用gets,scanf的%s遇到空格就会停了 哦对了scanf和gets一起用好像比较容易遇上初学者所谓的“人品问题”
在scanf函数中,可以使用 %c来读取一个字符,使用 %s 读取一个字符串,但 是读取字符串时不忽略空格,读字符串时忽略开始的空格,并且读到空格为止,因此只能读取一个单词,而不是整行字符串,因此一般使用fgets来读取一个字符串。其实scanf函数也可完成这样的功能,而且还更强大。这里主要介绍一个参数,%[ ],这个参数的意义是读入一个字符集合。[ ]是个集合的标志,因此%[ ]特指读入此集合所限定的那些字符, 比如 %[A-Z] 是输入大写字母,一旦遇到不在此集合的字符便停止。如果集合的第一个字符是" ^ ", 这说明读取不在" ^ " 后面集合的字符,既遇到" ^ " 后面集合的字符便停止.注意此时读入的字符串是可以含有空格的。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
花艺蛋糕烘焙小站在什么地方啊,我要过去处理
您好·向您求教个问题,锁模力130吨螺杆直径4
我的摩托车后轮有间隙我换啦后圈再用手左右摇
iPod原装入耳式耳机摩擦衣服会有摩擦噪音传入
为什么说唐代是我国历史上音乐文化高度发达的
西兰花加苹果香蕉做沙拉可以吃吗
平凉睿达广告工程有限公司这个地址在什么地方
华口有园通申通快递吗,地址在哪
眼角外面一圈都是黑色的,是什么东西
五年级下册第9课第二首诗第一节仿写作文
五大淡水湖中属于江南旅游大区的是
软塘河怎么去啊,有知道地址的么
PS能把图片的任何地方改变吗?
端午节千里草原这首诗的意思
宁夏体育运动训练管理中心我想知道这个在什么
推荐资讯
金玉商务宾馆我想知道这个在什么地方
计算机应用文摘这本杂志好吗?
钟爱一生婚纱摄影金爵馆地址在什么地方,想过
老凤祥黄金真好吗?为什么每条项链都有工费,
非诚勿扰之国脚吴曦现场大婚开场旋律歌曲什么
若是在一个国家边境到另一个国家可以不办签证
四平家电黎川店我想知道这个在什么地方
2015年高考作文,以女儿的语气给爸爸写信,这
乡派出所处理的案件,那行政复议的机构是哪个?
杭州什么电影院中间扶手可以抬起
渝信宾馆这个地址在什么地方,我要处理点事
家庭网关怎么限速
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?