翻译密码(简单的 大小写英文字母后移四位,其他字符不变)C语言与Python版本

这篇博客介绍了如何使用C语言和Python实现基于ASCII码的加密和解密功能。C语言版本通过getchar()接收输入,对英文字母进行条件判断并转换;Python版本则提供了encrypt和decrypt两个函数,分别用于加密和解密,同样基于ASCII码进行运算。博客重点展示了两种语言在处理字符串加密解密上的不同方法。

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

题目及分析

  • 上图片~~~
    在这里插入图片描述

c语言实现(利用ASCLL码)

// 译密码: 使用ASCLL码,转换
#include <stdio.h>

int main()
{
	// 1. 首先接收字符,我把它定义为 str,因为输出类似一个字符串
	char str;
	printf("请输入要进行转换的一段话(英文字母加字符:)\n");
	str = getchar();
	while (str != '\n')
	{
		// 2. 判断是否为 a-z,A-Z ,不是就不动
		if ((str >= 'a' && str <= 'z') || (str >= 'A' && str <= 'Z'))
		{
			// 3. 如果 > w  >W  表示要转换为 a等, 转换方式不一样。
			if ((str >= 'w' && str <= 'z') || (str >= 'W' && str <= 'Z'))
				str = str + 4 - 26;  
			else 
			// 常规 +4 转换
				str = str + 4;
		}
		printf("%c", str);

		// c语言这种直接输入一行字符串的方法,可以记住。
		str = getchar(str);
	}
	printf("\n");
	return 0;	
}

python实现(利用函数~)

  • 同样利用 ASCLL码
  • python这里给出,加密解密的函数。
def encrypt(str_c):
    result = ''
    for i in str_c:
        if i.islower():
            result += chr((ord(i) - ord('a') + 4)%26 + ord('a'))
        elif i.isupper():
            result += chr((ord(i) - ord('A') + 4)%26 + ord('A'))
        else:
            result += i
    return result

def decrypt(str_a):
    result = ''
    for i in str_a:
        if i.islower():
        	# 这里和C语言不一样, python -3%26 = 23, C语言 -3%26 = -3
            result += chr((ord(i) - ord('a') - 4)%26 + ord('a'))
        elif i.isupper():
            result += chr((ord(i) - ord('A') - 4)%26 + ord('A'))
        else:
            result += i
    return result

# print(encrypt('i" laohu you wxyzaa..'))
print(decrypt(' ABCD'))
### 回答1: 要指向新的节点,您需要使用一个数据结构,如树或图,来表示您的节点和它们之间的关系。然后,您可以使用指针或引用来指向您想要的节点。如果您正在使用C语言,您可以使用指针来指向节点。如果您正在使用其他编程语言,例如Python或Java,您可以使用引用或指针等类似的概念来实现相同的目的。无论您使用的是什么语言,您需要确保正确处理指针或引用,以避免出现内存泄漏或指向错误节点的情况。 ### 回答2: 在C语言中,当读入或输出txt文件时,我们通常需要指向一个新的节点对象。这是因为在C语言中,文件操作是通过使用文件指针来进行的。文件指针是一个特殊的指针类型,用于指向文件中的置。 首先,我们需要创建一个指向文件的指针,这可以通过使用文件的路径来完成。例如,我们可以使用fopen函数来打开一个文件,并返回一个指向该文件的指针。 读入txt文件时,我们需要读取文件中的内容,并存储在一个指向新节点的指针中。这是因为文件内容的大小是未知的,我们需要一个动态分配的内存空间来存储读取的内容。通过创建一个新的节点对象,并将文件内容存储在其中,可以确保我们能够有效地管理和操作这些内容。 同样地,当我们想要将内容写入txt文件时,我们需要指向一个新的节点。这是因为我们需要将待写入的内容保存在内存中,并通过创建一个新的节点对象来存储这些内容。最后,我们使用文件指针来将新节点的内容写入到文件中。 总结来说,通过指向一个新的节点对象,我们可以灵活地读取和写入txt文件的内容,并且可以动态地管理和操作这些内容。这样的方式可以确保我们能够高效地处理txt文件,并实现各种文件操作的需求。 ### 回答3: 在C语言中,读取和输出txt文件时需要使用文件指针来指向文件的置,这个文件指针指向的是一个文件节点。 为什么要指向新的节点呢? 首先,需要明确一点,文件是由多个字符组成的,每个字符占据一个字节的存储空间。而节点是文件系统中的一个概念,它保存了文件的属性和置信息。 当我们打开一个txt文件时,操作系统会为该文件分配一个文件节点,并且将指针指向该节点。如果我们想从文件中读取内容,需要将文件指针移动到我们希望读取的置。当我们读取完一部分内容后,文件指针会自动后移。 同样地,当我们需要往文件中写入内容时,也需要将文件指针移动到我们希望写入的置。写入完成后,文件指针会自动后移。 因此,每次读取或写入文件时,我们需要将文件指针指向新的节点,确保读取或写入的置正确。 需要注意的是,文件指针的指向是由操作系统管理的,我们只需要将文件指针保存在一个变量中,并在需要时操作该变量即可。 总结来说,为了读取和输出txt文件,我们需要使用文件指针指向新的节点,以确保读取和写入操作发生在我们希望的置。这样可以有效地管理文件的读写操作,保证数据的正确性和完整性。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值