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

#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; }
浏览 2161回答 3
3回答

望远

#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;    }

JustWannaHugU

同学,你这个代码是没有问题的。功能是输入一个数字n,接着输入一行长度为n的小写字符串,接着程序自动将小写转化成大写进行输出gets()是读取一行字符串,puts函数是输出一段字符串
打开App,查看更多内容
随时随地看视频慕课网APP