C 找到一个回文,不';不要与FGET一起工作

C 找到一个回文,不';不要与FGET一起工作,c,C,我想看看一个单词/短语是否是回文。我必须使用FGET,而不是GET等。。。 使用gets时,我的代码可以工作,但使用fgets时,它不能工作。有人知道为什么吗 #include <stdio.h> #include <string.h> #include <ctype.h> int main() { int i,j,len; char str[100]; printf("Enter the string: \n"); fge

我想看看一个单词/短语是否是回文。我必须使用FGET,而不是GET等。。。 使用gets时,我的代码可以工作,但使用fgets时,它不能工作。有人知道为什么吗

#include <stdio.h>
#include <string.h>
#include <ctype.h>

int main()
{

    int i,j,len;
    char str[100];
    printf("Enter the string: \n");
    fgets(str,sizeof(str),stdin);
    len=strlen(str);
    for(i=0;i<=len;i++)
        str[i]=tolower(str[i]);

    for(i=0,j=len-1;i<j;i++,j--) {
        while (str[i]==' ') i++;
        while (str[j]==' ') j--;
        if( str[i] != str[j] ) {
          printf("NO\n");
          return 0;
        }
    }

    printf("YES\n");
    return 0;
}
#包括
#包括
#包括
int main()
{
int i,j,len;
char-str[100];
printf(“输入字符串:\n”);
fgets(str,sizeof(str),stdin);
len=strlen(str);

对于(i=0;i这不适用于
fgets
,因为它将尾部
\n
与字符串保持在一起;
获取
不会这样做

从:

换行符使FGET停止读取,但函数认为它是有效字符,并包含在复制到str的字符串中


若要解决此问题,请调整长度以考虑尾部的
\n
标记:转到字符串的末尾,然后向后移动,直到看到非
\n
字符。

这不适用于
fgets
,因为它将尾部的
\n
保留在字符串中;
获取
不会这样做

从:

换行符使FGET停止读取,但函数认为它是有效字符,并包含在复制到str的字符串中


要解决此问题,请调整长度以考虑尾部的
\n
标记:转到字符串的末尾,然后向后移动,直到看到非
\n
字符。

首先,它是否为您编译?此外,这是:在调试器中查看字符串。然后逐步检查代码。检查变量。答案应该是立即的。Fi首先,它是否为您编译?还有,这是:查看调试器中的字符串。然后逐步检查代码。检查变量。答案应该是立即的。我明白了,谢谢!如果我这样做:len=strlen(str)-1;它有效。我们只给出简单的工作/短语,如:abcba、dad、anna,从不奇数或偶数等…所以我更改了这个,它有效。谢谢;)我明白了,谢谢!如果我这样做了:len=strlen(str)-1;它有效。我们只给出简单的作品/短语,如:abcba,dad,anna,从不奇数或偶数等…所以我改变了这个,它有效。谢谢;)