w0h0y0h 2023-05-10 23:50 采纳率: 100%
浏览 170
已结题

字符与数组的运用,请大家帮助解决

这个用数组怎么编程?存在空格,还存在换行,怎么用scanf来输入呀?

img

  • 写回答

5条回答 默认 最新

  • 语言-逆行者 2023-05-10 23:52
    关注

    img

    【法一】

    #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;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 5月19日
  • 已采纳回答 5月11日
  • 请采纳用户回复 5月11日
  • 创建了问题 5月10日

悬赏问题

  • ¥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的问题