声明:该内容皆为原创,仅供业内人士相互学习交流经验,任何未经授权复制、转载、传播或使用本网站(或应用程序)内容的行为,将受到法律的制裁。如因侵权行为给本网站(或应用程序)或任何第三方造成损失的,侵权人应当承担相应的法律责任)
实现编译器:vs2022 编译器建议使用13、19、22等版本,相关语法与c++通用
源代码展示:
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#define SHIFT 3 // 移动位数
// 函数用于加密字符
char encryptChar(char ch, int shift)
{
if (isalpha(ch))
{
// 根据字符是大写还是小写,选择不同的起始点
if (isupper(ch))
{
return 'A' + (ch - 'A' + shift) % 26;
}
else
{
return 'a' + (ch - 'a' + shift) % 26;
}
}
return ch; // 非字母字符不变
}
// 函数用于解密字符
char decryptChar(char ch, int shift)
{
return encryptChar(ch, -shift); // 加密和解密是相反的过程
}
// 函数用于加密字符串
void encryptString(char* str, int shift)
{
for (int i = 0; str[i] != '\0'; i++)
{
str[i] = encryptChar(str[i], shift);
}
}
// 函数用于解密字符串
void decryptString(char* str, int shift)
{
for (int i = 0; str[i] != '\0'; i++)
{
str[i] = decryptChar(str[i], shift);
}
}
int main()
{
char message[] = "Hello, World!";
int shift = SHIFT;
printf("Original message: %s\n", message);
encryptString(message, shift);
printf("Encrypted message: %s\n", message);
decryptString(message, shift);
printf("Decrypted message: %s\n", message);
return 0;
}
图像展示:
![](https://img-blog.csdnimg.cn/direct/bbe0dec31f024fc6a5654a4188790618.png)
![](https://img-blog.csdnimg.cn/direct/0797c589afb24530affebf357d8ee668.png)
![](https://img-blog.csdnimg.cn/direct/7932c6e85cfd468badff4ede0907f330.png)