百布 2021-11-21 00:40 采纳率: 95.8%
浏览 128
已结题

大一C语言字符数组之译密码

问题遇到的现象和发生背景

img

问题相关代码,请勿粘贴截图
#include<stdio.h>
#include<string.h>
int main()
{
    char m[100];
    int t,i;
    while(gets(m)!=EOF){
        t=strlen(m);
        for(i=0;i<t;i++){
            if(m[i]>='A'&&m[i]<='V'){
                printf("%c\n",m[i]+4);
            }
            else if(m[i]>='W'&&m[i]<='Z'){
                printf("%c\n",m[i]-22);
            }
            else if(m[i]>='a'&&m[i]<='v'){
                printf("%c\n",m[i]+4);
            }
            else if(m[i]>='w'&&m[i]<='z'){
                printf("%c\n",m[i]-22);
            }
            else{
                printf("%c\n",m[i]);
            }
        }
    }
    return 0;
}


运行结果及报错内容

[Warning] comparison between pointer and integer [enabled by default]
这合理吗?求指出错误

  • 写回答

1条回答 默认 最新

  • 密涅瓦的猫头鹰51 2021-11-21 01:04
    关注

    我试着把你代码里的while(gets(m)!=EOF)改成了while(gets(m)!=NULL),发现能够正常运行,截图如下

    img

    你可以试试,怀疑就是你用错了EOF,这玩意好像是用来读取文件的

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 12月1日
  • 已采纳回答 11月23日
  • 创建了问题 11月21日