字符串中洛谷p1914小书童-凯撒密码

a22916407d37410aa9be18b13ab777fa.png

 #define _CRT_SECURE_NO_WARNINGS 1//取消警告
#include<stdio.h>
#include<string.h>
int main() {
    int n,len;
    char let[50];
    scanf("%d", &n);
    n %= 26;
    getchar();
    scanf("%s", let);
    len = strlen(let);
    for (int i = 0; i < len; i++) {
        if (let[i] + n > 'z') {
            let[i] += n - 26;
        }
        else {
            let[i] += n;
        }
    }
    printf("%s",let);
    return 0;
}

总结一下思路🌝🌝🌝:

以下是这段 C 语言代码的思路:
 
一、整体流程
 
1. 首先包含必要的头文件  <stdio.h>  和  <string.h> 。
2. 在  main  函数中定义变量  n  表示要偏移的字符数, len  用于存储输入字符串的长度,以及字符数组  let  用来存储输入的字符串。
3. 读取一个整数  n ,并对其取模 26,确保  n  在 0 到 25 之间。
4. 读取一个字符串存储在  let  中,并计算其长度  len 。
5. 使用循环遍历字符串中的每个字符,对其进行偏移操作。如果偏移后的字符超过了  'z' ,则进行相应调整。
6. 最后输出偏移后的字符串。
 
二、具体步骤分析
 
1. 输入与初始化:
 
- 通过  scanf("%d", &n)  读取一个整数  n ,这个整数代表要对字符串中的字符进行偏移的数量。
- 对  n  取模 26,即  n %= 26 ,这样可以确保  n  的值在 0 到 25 之间,方便后续的字符偏移操作。
- 使用  getchar()  来处理输入整数后留下的换行符。
- 再通过  scanf("%s", let)  读取一个字符串存储在  let  中。
- 使用  strlen(let)  计算输入字符串的长度,并存储在  len  中。
2. 字符偏移操作:
 
- 使用  for (int i = 0; i < len; i++)  循环遍历输入字符串中的每个字符。
- 判断如果当前字符加上偏移量  n  后大于  'z' ,说明偏移后的字符超出了小写字母的范围,此时将当前字符先加上  n ,再减去 26,这样就实现了循环偏移,确保偏移后的字符仍然是小写字母。例如,如果当前字符是  'y' , n  为 2,那么  'y' + 2 = 'z' + 1 ,超出了  'z' ,此时进行调整, 'z' + 1 - 26 = 'b' 。
- 如果当前字符加上偏移量  n  后不大于  'z' ,则直接将当前字符加上  n ,完成偏移操作。
3. 输出结果:
 
- 使用  printf("%s", let)  输出偏移后的字符串。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值