【C语言】字符串转换问题

1.问题描述

从标准输入读取一个字符串,然后对每个字符进行一些变换,最后输出变换后的字符串。变换的规则如下:

  • 如果字符是大写字母,那么将它转换为小写字母,然后向右移动3个位置,如果超过了字母表的范围,那么从头开始循环。例如,A变成dZ变成c
  • 如果字符是小写字母,那么将它转换为大写字母,然后向右移动3个位置,如果超过了字母表的范围,那么从头开始循环。例如,a变成Dz变成C
  • 如果字符是数字,那么向右移动5个位置,如果超过了数字的范围,那么从头开始循环。例如,0变成59变成4
  • 如果字符是其他符号,那么不做任何变换,直接输出。

2.源代码

#include <stdio.h>
int main()
{
	char ch;
	
	ch=getchar();
	
	while(ch!='\n'){
		if(ch>='A' && ch<='Z'){
			ch=(ch-'A'+'a')+3;
			if(ch>'z'){
				ch=ch-26;
			}
		}
		
		if(ch>='a' && ch<='z'){
			ch=(ch-'a'+'A')+3;
			if(ch>'Z'){
				ch=ch-26; 
			}
		}
			
		 
		if(ch>='0' && ch<='9'){
			ch=ch+5;
		if(ch>'9'){
			ch=ch-10;
		}
	}
		
		putchar(ch);
		ch=getchar();
}	
		
	return 0;
	
	
}

3.运行示例

4.代码思路

这段代码使用了一个while循环,来不断地读取和输出字符,直到遇到换行符\n为止。它使用了getcharputchar函数,来分别从标准输入读取和向标准输出写入一个字符。它使用了if语句,来判断字符的类型,并根据不同的类型进行不同的变换。它使用了一些算术运算符和关系运算符,来实现字符的转换和循环。

  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值