为什么这地方换成get()就不行了???
发表在C语言图书答疑 2015-10-23
是否精华
版块置顶:
#include <stdio.h>
#include <string.h>

int main()
{
char text[20];
char change[20];
int num;
int i=0;

while(1)
{
printf("请输入大小写转换的方式(1表示转大写,2表示转小写,0表示退出):\n");
scanf("%d",&num);

if(num==1)
{
printf("请输入一组小写字符串:");
scanf("%s",&text);       //gets(text);          
strcpy(change,text);
strupr(change);
printf("转换成大写字母的字符串为:%s\n\n",change);
}

else if(num==2)
{
printf("请输入一组大写字符串:\n");
scanf("%s",&text);
strcpy(change,text);
strlwr(change);
printf("转换成大写字母的字符串为:%s\n\n",change);
}

else if(num==0)
{
printf("您已选择退出!\n");
break;
}

else 
{
printf("您的输入有误!请按照提示输入!\n\n");
}
}

}
分享到:
精彩评论 2
keithke
学分:0 LV1
2015-10-23
沙发
printf("请输入一组小写字符串:");
scanf("%s",&text);   //gets(text);


为什么这个地方的scanf换成gets()运行时就直接跳过了?? 
学分: LV1
TA的每日心情
开心
2020-06-16 09:16:38
2015-10-23
板凳
在getchar();前面加上一句getchar();就可以了。主要问题是scanf()的和gets函数混用,导致gets之前缓冲区里面有一个没有清除掉字符(回车),因此gets那句相当于直接回车掉了。gets()函数是遇到回车时,结束输入,所以运行时直接就跳过去了。
在前面增加一个getchar()命令,然后再调用 gets()命令。
首页上一页 1 下一页尾页 2 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照