```c
include include // 加密函数 void encrypt(char *data, int key) { int i; for (i = 0; i < strlen(data); i++) { data[i] = data[i] ^ key; } } // 解密函数 void decrypt(char *data, int key) { encrypt(data, key); // 解密和加密使用相同的方法 } int main() { char data; int key; int choice; printf("请输入要加密的字符串: "); fgets(data, sizeof(data), stdin); data[strcspn(data, "\n")] = 0; // 去掉fgets读取的换行符 printf("请输入加密密钥: "); scanf("%d", &key); printf("请选择加密或解密: 1.加密 2.解密\n"); scanf("%d", &choice); if (choice == 1) { encrypt(data, key); printf("加密后的字符串为: %s\n", data); } else if (choice == 2) { decrypt(data, key); printf("解密后的字符串为: %s\n", data); } else { printf("输入错误!\n"); } return 0; } ``` 这个程序首先定义了加密和解密函数,它们都使用异或运算来处理字符串。在`main`函数中,程序提示用户输入要加密的字符串和加密密钥,然后询问用户选择加密还是解密。根据用户的选择,程序调用相应的函数并输出结果。 请注意,这个程序是一个简单的示例,它不使用任何复杂的加密算法,只是通过异或运算来加密和解密字符串。在实际应用中,加密通常需要更复杂的算法来确保数据的安全性。