用c语言 将 China 译成一串数字形式的密码,规律是,将每个字母译为其对应 ASCII 码值加上10 后的数宇,输出译码后的结果。 - 再编写密码解码的程序,并将上一步输出的密码进行解码,检查其是否能还原 China 字符
时间: 2024-11-26 22:20:13 浏览: 15
要将 "China" 这个字符串转换成每字符的 ASCII 值加10后表示的密码,你可以按照以下步骤编写 C 代码:
```c
#include <stdio.h>
#include <string.h>
// 函数用于加密字符串
void encrypt(char *str, char *encrypted) {
int len = strlen(str);
for (int i = 0; i < len; ++i) {
encrypted[i] = str[i] + 10;
}
encrypted[len] = '\0'; // 添加字符串结束符
}
// 函数用于解密字符串
char *decrypt(char *encrypted, char *original) {
int len = strlen(encrypted);
original[0] = encrypted[0] - 10; // 解码第一个字符
for (int i = 1; i < len; ++i) {
original[i] = encrypted[i] - 10;
}
original[len] = '\0'; // 删除最后一个空字符
return original;
}
int main() {
char input[] = "China";
char encrypted[50];
char decrypted[50];
// 加密
encrypt(input, encrypted);
printf("Encoded password: %s\n", encrypted);
// 解密并检查还原结果
decrypt(encrypted, decrypted);
if (strcmp(decrypted, "China") == 0) {
printf("Decoded string matches: %s\n", decrypted);
} else {
printf("Decoded string does not match: %s\n", decrypted);
}
return 0;
}
```
这段代码首先定义了两个辅助函数 `encrypt` 和 `decrypt`,分别负责加密和解密字符串。在 `main` 函数中,我们创建了两个字符数组 `input` 和 `encrypted` 分别存储原始字符串和加密后的结果,以及 `decrypted` 存储解密后的结果。
运行这个程序,你会看到加密后的密码(ASCII 值加10的结果),然后解码并检查是否恢复到原字符串 "China"。
阅读全文