7-1 sdut-C语言实验-字符编码

本文介绍了如何使用特定密码规律对纯字母文本进行编码,即用每个字母后面第4个字母替换原来的字母。例如,'China'编码后变为'Glmre'。此算法涉及到字符串处理和字母替换,是信息安全领域中基础的加密技术之一。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

请将一串长度最长为5的纯字母文本译成一个密码,密码规律如下:用原来的字母后面的第4个字母代替原来的字母。如C用G代替(如果该字母没后面没有第4个字母可代替,则需从26字母表中的首字母开始代替,比如:W用A代替,Z用D代替),最后得到的文本即为密码。

输入格式:

输入一串文本,长度固定为5。

输出格式:

输出对应的密码。格式为:
password is 密码

输入样例:

China

输出样例:

在这里给出相应的输出。例如:

password is Glmre

#include<stdio.h>
#include<string.h>


int main()
{
    int i,len;
    char ch[50];
    gets(ch);
    len=strlen(ch);//获取字符串长度,对于这套算法是必不可少的一步
    for(i=0;i<len;i++){
        if(ch[i]>='a'&&ch[i]<'w'||ch[i]>='A'&&ch[i]<'W')
            ch[i]=ch[i]+4;
        else
            ch[i]=ch[i]-22;
    }
    printf("password is %s",ch);
    return 0;
}

解法思路:

首先获取字符串,判断哪些字母(w之前的)不需要从头开始 ,然后将其后移4,其余的先后移4再前移26(ch[i]-=22),i<len换成i<5就会有两个测试点错误,原因是题目说的是长度最长为5,如果长度小于5则不需要判断后面的字符,最后将新的字符串按照题目要求输出。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值