为了账号安全,请及时绑定邮箱和手机立即绑定

这个怎么不行,puts()与gets()有什么特殊要求吗?

这个怎么不行,puts()与gets()有什么特殊要求吗?

C
2016-10-26 22:19:54
#include <stdio.h> int main() { int n,l,t,i=1; char s[200]; scanf("%d",&n); while(i<=n) { i++; gets(s); for(t=0;t<200;t++) { if('A'<=s[t]&&s[t]<'Z') s[t] = s[t]+32; else if('a'<=s[t]&&s[t]<'z') s[t] = s[t]-32; } puts(s); } return 0; }
查看完整描述

3 回答

?
望远

TA贡献1017条经验 获得超1032个赞

#include <stdio.h> 
int main() { 
    int n,l,t,i=1; 
    char s[200]; 
    scanf("%d",&n);
    getchar();
    /*
        你scanf输入n的时候结尾有一个残余的\n,你要把这个字符\n去除,否则会被gets()函数接收,导致第一个字符串是空串,常用的做法是在scanf函数后面加上一个getchar();    
    */ 
    while(i<=n) 
    { 
        i++; 
        gets(s); 
        for(t=0;s[t]!='\0';t++) 
            { 
                if('A'<=s[t]&&s[t]<'Z') 
                    s[t] = s[t]+32; 
                 else if('a'<=s[t]&&s[t]<'z') 
                    s[t] = s[t]-32;
              } 
        puts(s); 
    } 
   return 0; 
  }
查看完整回答
4 反对 回复 2016-10-27
?
JustWannaHugU

TA贡献452条经验 获得超796个赞

同学,你这个代码是没有问题的。

功能是输入一个数字n,接着输入一行长度为n的小写字符串,接着程序自动将小写转化成大写进行输出

gets()是读取一行字符串,puts函数是输出一段字符串

//img1.sycdn.imooc.com//581152060001e75307190334.jpg


查看完整回答
2 反对 回复 2016-10-27
  • 3 回答
  • 3 关注
  • 2160 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信