| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 980 人关注过本帖
标题:这个程序是那里出错了呀?
只看楼主 加入收藏
城邦
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2010-5-28
结帖率:60%
收藏
 问题点数:0 回复次数:16 
这个程序是那里出错了呀?
#include<stdio.h>
void main()
{char c;
while(c=getchar());
{
c=(c>='A'&&c<='Z')?(c+32):c;
}
printf("%c\n",c);
}

我想输入一串字母然后判断大小写 大写的变成小写 小写的不变输出 为什么没有错误输出是空呀  郁闷
2010-09-15 14:21
A13433758072
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广东潮州
等 级:小飞侠
威 望:1
帖 子:1182
专家分:2784
注 册:2010-7-22
收藏
得分:0 
你试试 看,#include<stdio.h>  int  main() {char c; while(c=getchar()!='\n') { c=(c>='A'&&c<='Z')?(c+32):c; } printf("%c\n",c);return 0; }你加了分号

[ 本帖最后由 A13433758072 于 2010-9-15 14:55 编辑 ]

一步一个脚印...............................默默地前进.....
诚邀乐于解答c菜鸟问题,的热心网友加入,  QQ群38490319
2010-09-15 14:47
城邦
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2010-5-28
收藏
得分:0 
回复 2楼 A13433758072
谢谢你的帮助 但是你给的好像也是错误的呀
2010-09-15 15:07
A13433758072
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广东潮州
等 级:小飞侠
威 望:1
帖 子:1182
专家分:2784
注 册:2010-7-22
收藏
得分:0 
回复 3楼 城邦
错哪啊!

一步一个脚印...............................默默地前进.....
诚邀乐于解答c菜鸟问题,的热心网友加入,  QQ群38490319
2010-09-15 15:10
codeferever
Rank: 2
等 级:论坛游民
帖 子:12
专家分:31
注 册:2010-7-25
收藏
得分:0 
This is the correct code for you:

#include<stdio.h>
void main()
{char c;
while(c=getchar())
{
c=(c>='A'&&c<='Z')?(c+32):c;
printf("%c\n",c);
}
printf("%c\n",c);
}

>>while(c=getchar());
A big bug!    Anyway you input,aside of "Ctrl+C",you would not break from the loop.

Remember ascii rules may helps you a lot!
0-31:ascii control characters
32-47:usual signs
48-57:0-9
58-64:usual signs
65-90:A-Z
91-96:usual signs
97-122:a-z
123-126:usual signs

See,your code is not safe,fix it to include all conditions!
2010-09-15 15:16
梦醒skya
Rank: 1
等 级:新手上路
帖 子:2
专家分:3
注 册:2010-5-29
收藏
得分:0 
#include<stdio.h>
int main()
{char c;
c=getchar();
{
c=(c>='A'&&c<='Z')?(c+32):c;
}
printf("%c\n",c);
}
2010-09-15 16:19
清风拂晓
Rank: 8Rank: 8
来 自:火星
等 级:蝙蝠侠
威 望:1
帖 子:356
专家分:889
注 册:2010-8-13
收藏
得分:0 
while(c=getchar());
{
c=(c>='A'&&c<='Z')?(c+32):c;
}
printf("%c\n",c);
}

你这个WHILE循环结束是接受到字符串结束标志,所以最后C得到的是字符串结束标志  输出的就是没东西了

清风拂暮(木)
2010-09-15 16:51
清风拂晓
Rank: 8Rank: 8
来 自:火星
等 级:蝙蝠侠
威 望:1
帖 子:356
专家分:889
注 册:2010-8-13
收藏
得分:0 
不然就是那个WHILE是无限循环

清风拂暮(木)
2010-09-15 16:52
大神
Rank: 1
等 级:新手上路
帖 子:7
专家分:1
注 册:2010-9-14
收藏
得分:0 
你这好像无限循环了啊
2010-09-15 17:09
l302889153
Rank: 2
等 级:论坛游民
帖 子:66
专家分:89
注 册:2010-5-26
收藏
得分:0 
字符串好像用字符数组吧
你这样的话存储空间不足的说。
2010-09-15 17:17
快速回复:这个程序是那里出错了呀?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.032869 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved