原题链接:C语言训练-大、小写问题
解题思路:
输入字符串,然后输出,输出的时候,遇到大写字母,输出对应的小写字母;
注意事项:
别这样写:输出超限,我的理解是,题目明确100以内字符,测试数据有超过100个字符的;
不过种思路省空间:
#include <stdio.h>
int main()
{
char a;
while ( (a = getchar() ) && a != '\n' )
{
if ( a >= 'A' && a <= 'Z' )
printf( "%c", a + 32 );
else
printf( "%c", a );
}
}
参考代码:
#include <stdio.h>
#include <string.h>
int main()
{
char a[100];
gets( a );
for ( int i = 0; i < strlen( a ); i++ )
{
if ( a[i] >= 'A' && a[i] <= 'Z' )
printf( "%c", a[i] + 32 );
else
printf( "%c", a[i] );
}
}0.0分
2 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
# include <stdio.h> # include <string.h> int main () { char str[100]; gets(str); int i=-1; while(str[i]!='\0');{ i++; if (str[i]>='A'&&str[i]<='z') str[i]+=32;} puts(str); return 0; } 为啥错了啊# include <stdio.h> # include <string.h> int main () { char str[100]; gets(str); int i=-1; while(str[i]!='\0');{ i++; if (str[i]>='A'&&str[i]<='z') str[i]+=32;} puts(str); return 0; } 为啥错了啊#include<stdio.h> #include<stdlib.h> char transform(char* arr); int main(void) { char arr[100]; gets(arr); char transform(char* arr); return 0; } char transform(char* arr) { for (int j = 0; j < 100; j++) { if (arr[j] >= 'A' && arr[j] <= 'Z') arr[j] += 32; } puts(arr); return 0; } 这个代码的书写方式为什么错了?没有输出@凑凑 把scanf("%s",a)改成scanf("%[^\n]",a),你那样输入字符串不能接受空格。或者改成gets(a), 头文件是#include<string.h>#include<stdio.h> int main() { int i=0; char a[100]; scanf("%s",a); while(a[i]!='\0') { if(a[i]>=65&&a[i]<=90) { a[i]=a[i]+32; } i++; } printf("%s",a); return 0; } 为啥错了%12#include<stdio.h> #include<string.h> char *fun(char *a,char *b) { int len=strlen(a); for(int i=0;i<len;i++) if(a[i]>='A'&&a[i]<='Z') b[i]=a[i]+32; else b[i]=a[i]; b[i]='\0'; return b; } int main(void) { char a[100],b[100]; gets(a); char *p=fun(a,b); puts(p); return 0; } 为什么错误呀 ,我运行是正确结果呀!!!!!