这个用数组怎么编程?存在空格,还存在换行,怎么用scanf来输入呀?
5条回答 默认 最新
- 语言-逆行者 2023-05-10 23:52关注
【法一】
#include <stdio.h> #include <string.h> // 加密单个单词的函数 void encryptWord(char* word) { int i, len = strlen(word); char c; for (i = 0; i < len; i++) { c = word[i]; // 如果当前字母在A到Z的范围内 if (c >= 'A' && c <= 'Z') { if (c >= 'A' && c <= 'M') { // 如果当前字母是第一组字母中的字母 c = 'N' + (c - 'A'); // 替换为对应的第二组字母中的字母 } else if (c >= 'N' && c <= 'Z') { // 如果当前字母是第二组字母中的字母 c = 'A' + (c - 'N'); // 替换为对应的第一组字母中的字母 } } // 将替换后的字母存储回原来的单词数组中 word[i] = c; } } int main() { char word[101]; // 定义一个能够存储100个字符加上一个结束符'\0'的数组 while (scanf("%s", word) != EOF) { // 循环读入每个单词,直到结束符EOF encryptWord(word); // 调用函数加密该单词 printf("%s\n", word); // 输出加密后的结果 } return 0; }
【法二】
#include <stdio.h> #include <string.h> void encryptWord(char* word) { int i; int length = strlen(word); for (i = 0; i < length; i++) { if (word[i] >= 'A' && word[i] <= 'Z') { if (word[i] >= 'A' && word[i] <= 'M') { word[i] = 'N' + (word[i] - 'A'); } else if (word[i] >= 'N' && word[i] <= 'Z') { word[i] = 'A' + (word[i] - 'N'); } } } } int main() { char input[100]; scanf("%[^\n]", input); char* word = strtok(input, " "); while (word != NULL) { encryptWord(word); printf("%s\n", word); word = strtok(NULL, " "); } return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 3无用 1
悬赏问题
- ¥115 关于#python#的问题:未加密前两个软件都可以打开,加密后只有A软件可打开,B软件可以打开但读取不了数据
- ¥15 在matlab中Application Compiler后的软件无法打开
- ¥15 想问一下STM32创建工程模板时遇到得问题
- ¥15 Fiddler抓包443
- ¥20 Qt Quick Android 项目报错及显示问题
- ¥15 而且都没有 OpenCVConfig.cmake文件我是不是需要安装opencv,如何解决?
- ¥15 oracleBIEE analytics
- ¥15 H.264选择性加密例程
- ¥50 windows的SFTP服务器如何能批量同步用户信息?
- ¥15 centos7.9升级python3.0的问题