用c编写一个解密藏头诗的程序
时间: 2023-05-29 14:04:53 浏览: 243
以下是一种可能的解密藏头诗的程序实现:
```c
#include <stdio.h>
#include <string.h>
int main() {
char cipher[1000]; // 存储密文
char header[10]; // 存储头字母
char message[1000]; // 存储解密后的消息
// 读入密文和头字母
printf("请输入密文:\n");
fgets(cipher, 1000, stdin);
printf("请输入头字母:\n");
fgets(header, 10, stdin);
// 解密过程
int i, j = 0;
for (i = 0; i < strlen(cipher); i++) {
// 如果当前字符是头字母,就将其添加到解密后的消息中
if (cipher[i] == header[0]) {
message[j] = header[0];
j++;
}
// 如果当前字符不是头字母,就将其添加到解密后的消息中
else if (cipher[i] != '\n') {
message[j] = cipher[i];
j++;
}
}
// 输出解密后的消息
printf("解密后的消息为:\n%s", message);
return 0;
}
```
该程序首先读入密文和头字母,然后通过一个循环遍历每个字符,如果当前字符是头字母,则将其添加到解密后的消息中,否则将其添加到解密后的消息中。最后输出解密后的消息。需要注意的是,为了方便处理,程序中使用了fgets函数读入字符串,这会在字符串末尾添加一个换行符,因此需要在解密过程中特判该字符。