输入格式:
输入第一行给出一个以回车结束的非空字符串(少于80个字符);第二行输入一个整数offset。
输出格式:
输出加密后的结果字符串。
关于#c语言#的问题:输入一个以回车符为结束标志的字符串(少于80个字符),再输入一个整数offset,用凯撒密码将其加密后输出
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
3条回答 默认 最新
- 社区专家-Monster-XH 2023-04-15 11:46关注
基于Monster 组和GPT的调写:
#include <stdio.h> #include <string.h> #define MAX_LEN 80 int main() { char str[MAX_LEN + 1]; // 输入的字符串 int offset; // 偏移量 int len; // 字符串长度 // 输入字符串 printf("请输入一个字符串(少于80个字符):\n"); fgets(str, MAX_LEN + 1, stdin); len = strlen(str); // 去掉字符串末尾的回车符 if (len > 0 && str[len - 1] == '\n') { str[len - 1] = '\0'; len--; } // 输入偏移量 printf("请输入一个整数偏移量:\n"); scanf("%d", &offset); // 对字符串进行加密 for (int i = 0; i < len; i++) { if (str[i] >= 'a' && str[i] <= 'z') { // 小写字母的情况 str[i] = 'a' + (str[i] - 'a' + offset) % 26; } else if (str[i] >= 'A' && str[i] <= 'Z') { // 大写字母的情况 str[i] = 'A' + (str[i] - 'A' + offset) % 26; } } // 输出加密后的字符串 printf("加密后的字符串为:%s\n", str); return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报