题意
大写全部换成小写,每行50个字符以内
思路
判断:是大写吗,是,-'A'+'a'
笔记
- Output Limit Exceed 一般为某处陷入死循环,或输入没有明确的终止
先gets(str);
,while循环条件为strlen(str)!=0
,结果出现上方报错 gets()
的读取规则:
1.只要gets遇到换行符,即便它是输入的第一个字符,gets也会停止读入并返回。如果输入的第一个字符就是换行符,则字符串将被置为空串。
2.由于gets函数读入再丢弃换行符,换行符将不会存储在字符串中。gets()
的返回值:
1.正常读入(未遇到文件结尾)(读入空串也是正常读入),返回字符串,即返回字符串首地址,char*类型
2.遇到文件结尾,返回NULL
- 但我还是没想明白用什么用字符串长度不行,或许\n在本题也算输入,而原代码如果仅输入\n就执行结束退出(我只能想到这个了)
代码
#include<cstdio>
#include<string.h>
int main(){
char str[51];
while(gets(str)!=NULL){
for(int i=0; i<strlen(str); i++){
if(str[i]>='A' && str[i]<='Z')
str[i] = str[i] - 'A' + 'a';
printf("%c", str[i]);
}
printf("\n");
}
return 0;
}