凯撒密码转化,循环,C语言版!

简介: 则是这样的:1. 对于字母字符,将其转换成其后的第3个字母。例如:A→D,a→d,X→A,x→a;2. 对于非字母字符,保持不变。现在,请你根据输入的一行字符,输出其对应的密码。

在传递信息的过程中,为了加密,有时需要按一定规则将文本转换成密文发送出去。有一种加密规则是这样的:

1. 对于字母字符,将其转换成其后的第3个字母。例如:A→D,a→d,X→A,x→a;

2. 对于非字母字符,保持不变。

现在,请你根据输入的一行字符,输出其对应的密码。


输入:I(2016)love(08)China(15)!

输出:L(2016)oryh(08)Fklqd(15)!


注意:字符串长度不超过100。


这个呢就是一个关于循环的题目了

这个题目就是关键在于如何最后三个字符的转化了,但是如果说你是选择了用if语句来对最后三个进行特殊处理的话呢,你就可以关闭这个博客了。恩


下面介绍的是一个循环的方法去实现转化。

就拿大写字母来做个例子吧。

A,B,C,D,E,F,G,H…X,Y,Z.

那么就是最后三个字符的如何回头?


第一步改变

我的话呢,第一步就是想着将其变成一个圆,而不是一个横排,

那么就有了一个26个字母的圆。


第二步就是找规律

A---->D 就是 ‘A’+3

B---->F 就是 ‘A’+(‘B’-‘A’+3)

C---->G 就是 ‘A’+(‘C’-‘A’+3)

.

.

.

X---->A 就是 ‘A’+(‘X’-‘A’+3) 发现这里不行。

就想办法将其转回去,那就就将其变成一个圆,我们可以利用一个取余的情况进行循环。

就变成了下面这种形式:

‘A’+(‘X’-‘A’+3)%26

就可以解决这个一路向前走的问题了。


可能你会觉得有点懵,为啥这个就可以圈圈圈圈圈圈了呢?!

举个例子:

1,2,3,4,5五个数字

那么就有

1%5=1,

2%5=2,

3%5=3,

4%5=4,

5%5=0,

6%5=1,

7%5=2,

看出来了吧,类比一下就行了,有多少个数就对多少取余。

附上完整代码:

#include <stdio.h>
#include <string.h>
int main()
{
    int i,j,k;
    char a[100],b[100];
    gets(a);
    for(i=0;i<strlen(a);i++)
    {
        if (a[i]>='A' && a[i]<='Z')
        {
            a[i]='A'+(a[i]-'A'+3)%26;
        }
        else if (a[i]>='a' && a[i]<='z')
        {
            a[i]='a'+(a[i]-'a'+3)%26;
        }
    }
    for (j=0;j<strlen(a);j++)
    {
        printf("%c",a[j]);
    }
    return 0;
}
相关文章
|
3月前
|
C语言
初识C语言2——分支语句和循环语句
初识C语言2——分支语句和循环语句
80 5
|
4月前
|
安全 C语言
C语言循环的使用注意点
在C语言中,合理使用循环对于编写高效、安全的代码至关重要。以下是几点建议:确保循环条件正确以避免无限循环;每次迭代时正确更新循环变量;恰当使用`break`和`continue`控制执行流程;注意嵌套循环中的变量作用域;简化循环体内逻辑;根据需求选择合适的循环类型;注意数据类型以避免溢出;保持良好的缩进和注释习惯;减少重复计算以提升性能;确保循环终止条件明确。遵循这些建议,可以提高代码质量和可维护性。
245 88
|
3月前
|
C语言
【c语言】循环语句
循环结构是C语言中用于简化重复操作的重要工具,主要包括while循环、do-while循环和for循环。while循环是最基本的形式,通过不断检查条件来决定是否继续执行循环体。do-while循环则先执行循环体,再检查条件,至少执行一次。for循环逻辑更复杂,但使用频率最高,适合初始化、条件判断和更新变量的集中管理。此外,循环中还可以使用break和continue语句来控制循环的提前终止或跳过当前迭代。最后,循环可以嵌套使用,解决更复杂的问题,如查找特定范围内的素数。
56 6
|
3月前
|
Serverless C语言
C语言控制语句:分支、循环和转向
C语言控制语句:分支、循环和转向
|
3月前
|
算法 编译器 C语言
【C语言】实现猜数字游戏(分支语句与循环语句的运用)
【C语言】实现猜数字游戏(分支语句与循环语句的运用)
|
3月前
|
C语言
教你快速理解学习C语言的循环与分支
教你快速理解学习C语言的循环与分支
21 0
|
4月前
|
C语言
【C语言基础考研向】08判断语句与循环语句
本文介绍了C语言中的关键编程概念:首先解析了关系表达式与逻辑表达式的优先级及计算过程;接着详细说明了`if-else`语句的使用方法及其多分支和嵌套应用;然后讲解了`while`循环与`for`循环的语法和注意事项;最后介绍了`continue`和`break`语句在控制循环中的作用和示例代码。
|
3月前
|
小程序 C语言
初识C语言:走近循环
初识C语言:走近循环
|
3月前
|
编译器 C语言 C++
【C语言】循环语句(语句使用建议)
【C语言】循环语句(语句使用建议)
102 0
|
4月前
|
存储 算法 C语言
C语言手撕实战代码_循环单链表和循环双链表
本文档详细介绍了用C语言实现循环单链表和循环双链表的相关算法。包括循环单链表的建立、逆转、左移、拆分及合并等操作;以及双链表的建立、遍历、排序和循环双链表的重组。通过具体示例和代码片段,展示了每种算法的实现思路与步骤,帮助读者深入理解并掌握这些数据结构的基本操作方法。