这个用数组怎么编程?存在空格,还存在换行,怎么用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
悬赏问题
- ¥15 Fatal error in Process MEMORY
- ¥15 labelme生成的json有乱码?
- ¥30 arduino vector defined in discarded section `.text' of wiring.c.o (symbol from plugin)
- ¥20 如何训练大模型在复杂因素组成的系统中求得最优解
- ¥15 关于#r语言#的问题:在进行倾向性评分匹配时,使用“match it"包提示”错误于eval(family$initialize): y值必需满足0 <= y <= 1“请问在进行PSM时
- ¥45 求17位带符号原码乘法器verilog代码
- ¥20 PySide6扩展QLable实现Word一样的图片裁剪框
- ¥15 matlab数据降噪处理,提高数据的可信度,确保峰值信号的不损失?
- ¥15 怎么看我在bios每次修改的日志
- ¥15 python+mysql图书管理系统