解题思路:

注意事项:

参考代码:

#include<stdio.h>

#include<string.h>

#define RANGE 100//设置数组长度 

int main(void)

{

void swap(char str[]);//声明函数 

char str[RANGE]={0};//数组初始化 

gets(str);//获得一串字符 

swap(str);//调用函数,进行交换 

return 0;

}

void swap(char str[]){

int i,j=0;

char newstr[RANGE];

for(i=0;i<strlen(str);i++)

{

if((str[i]>='a'&&str[i]<='z')||(str[i]>='A'&&str[i]<='Z')){//进行判断 

    if(str[i]=='z'||str[i]=='Z'){

    str[i]-=25;//特例 

   }

  else{

    str[i]++;

  } 

   }  

newstr[j]=str[i];//将转换后的数组转移到一个新的数组中 

j++;

}

puts(newstr);//输出转换后的新数组 

}


点赞(0)
 

0.0分

2 人评分

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

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

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

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

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

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

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

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

评论列表 共有 4 条评论

恰苏 4年前 回复TA
@MasaNvi scanf 只能输入空格前的,而不是回车前的字符
MasaNvi 5年前 回复TA
#include<stdio.h>
#include<string.h>
int main()
{
	char a[100];
	int i,j;
	scanf("%s",&a);
		j=strlen(a);
		for(i=0;i<j;i++)
		{
			if((a[i]>='a'&&a[i]<='y')||(a[i]>='A'&&a[i]<='Y'))
			{
				printf("%c",a[i]+1);
			}
			else if((a[i]=='z')||(a[i]=='Z'))
			{printf("%c",a[i]-25);}
			else{printf("%c",a[i]);}
		}
		printf("\n");
	return 0;
}
求问,编程软件正确为什么提交显示答案错误!
C杯 5年前 回复TA
@小雨 是为了将加密的字符放到新的数组里面,并不对原来的数组修改
小雨 5年前 回复TA
为什么转移到一个新的数组中