解题思路:
输入字符串,然后输出,输出的时候,遇到大写字母,输出对应的小写字母;
注意事项:
别这样写:输出超限,我的理解是,题目明确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] );
    }
}


点赞(16)
 

0.0分

2 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 9 条评论

咕咕咕鸽 5年前 回复TA
# 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;
}
为啥错了啊
咕咕咕鸽 5年前 回复TA
# 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;
}

为啥错了啊
mkdir 5年前 回复TA
@凑凑 @shawngg 学到了
墨魍 5年前 回复TA
#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;
}
这个代码的书写方式为什么错了?没有输出
shawn 5年前 回复TA
@凑凑 把scanf("%s",a)改成scanf("%[^\n]",a),你那样输入字符串不能接受空格。或者改成gets(a), 头文件是#include<string.h>
凑凑 5年前 回复TA
#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
jjstudyc 5年前 回复TA
#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;
}
为什么错误呀 ,我运行是正确结果呀!!!!!
minpengwei 6年前 回复TA
输出超限!原来是这个意思。
别以为我拿你没办法 6年前 回复TA
cuo wu de   da  an!