cfcys‖XDU 2021-10-22 21:21 采纳率: 0%
浏览 50

c语言中判断字符串是否为回文字符串中fgets和gets的区别


#include <stdio.h>
#include <string.h>
int main(void)
{
    char str1[30];
    char str2[30];
    int i,j;
    int cnt=0;
    int len;
    printf("请输入你想要去验证的字符串:");
    gets(str1);
    len=strlen(str1);
    for(i=0,j=len-1;i<len-1,j>=0;i++,j--){
        str2[j]=str1[i];
    }
    for(i=0;i<len-1;++i){
        if(str1[i]==str2[i]){
            cnt++;
        }
    }
    if(cnt==len-1){
        printf("是回文数");
    }
    else{
        printf("不是回文数"); 
    }
    return 0;
}

这是我在学习字符串时的一个练习,我发现如果将gets换成fgets则无论输入什么样的字符串都会显示不是回文字符串;
我也无法通过调试来搞明白其中的问题
我想知道的是为什么fgets是不可以的

  • 写回答

2条回答 默认 最新

  • CSDN专家-link 2021-10-22 21:24
    关注

    你输入多长的字符串啊
    fgets要求指定读入的字符串长度,你是怎么调用fgets函数的呢

    评论

报告相同问题?

问题事件

  • 创建了问题 10月22日

悬赏问题

  • ¥15 如何在ns3中实现路径的自由切换
  • ¥20 SpringBoot+Vue3
  • ¥15 IT从业者的调查问卷
  • ¥65 LineageOs-21.0系统编译问题
  • ¥30 关于#c++#的问题,请各位专家解答!
  • ¥15 App的会员连续扣费
  • ¥15 不同数据类型的特征融合应该怎么做
  • ¥15 用proteus软件设计一个基于8086微处理器的简易温度计
  • ¥15 用联想小新14Pro
  • ¥15 multisim中关于74ls192n和DSWPK开关仿真图分析(减法计数器)