当前位置: 代码迷 >> C语言 >> [求助]刚学C的菜鸟问题
  详细解决方案

[求助]刚学C的菜鸟问题

热度:93   发布时间:2006-07-18 10:08:20.0
定义变量错误,明明是字符型的,定义成整型的了,''里面是字符,程序中不能转换成ASCII码吧,弱弱的说
----------------解决方案--------------------------------------------------------
以下是引用Sally_SJL在2006-7-18 9:25:17的发言:

main()
{char ch;
scanf("%c",&ch);
ch=(ch>=65&&ch<=90)?(ch+32):ch;
printf("%c",ch);
}

这边是正解.有好奇心是个好事.多多学习咯~~~


----------------解决方案--------------------------------------------------------
提示: 作者被禁止或删除 内容自动屏蔽

2006-07-18 02:13:38
走刀口→超

等 级:贵宾
威 望:20
帖 子:5028
专家分:0
注 册:2006-3-14
  得分:0 
那么请穆扬兄拿个正解出来看看1
----------------解决方案--------------------------------------------------------
提示: 作者被禁止或删除 内容自动屏蔽

2006-07-18 02:35:11
走刀口→超

等 级:贵宾
威 望:20
帖 子:5028
专家分:0
注 册:2006-3-14
  得分:0 
其实都差不多.就是表示不一样.一个用字符型,一个用ascii码罢了呀...
----------------解决方案--------------------------------------------------------
提示: 作者被禁止或删除 内容自动屏蔽

2006-07-18 02:52:55
heamer_c

等 级:新手上路
帖 子:92
专家分:0
注 册:2006-7-18
  得分:0 

晕,括号怎么还有不成对用的啊!


----------------解决方案--------------------------------------------------------

晕,括号怎么还有不成对用的啊!


----------------解决方案--------------------------------------------------------

楼主,你写的

main()
{int ch;
scanf("%c",&ch);
ch=(ch>='65'&&ch<='90')?(ch+32):ch;
printf("%c",ch);
}

黑体处有问题,int和char类型是可以转换,但是所加的其范围就是65-90,而不是'65'-'90'
就如同你写 ch+32 而不是ch+'32'一样.


另外,前面定义为 INT CH,我认为从实现最后结果上没有问题~
当然,风格另说~

[此贴子已经被作者于2006-7-19 11:53:47编辑过]


----------------解决方案--------------------------------------------------------
  相关解决方案