#include <stdio.h> //1代碼是判斷回文字符竄的
#include <string.h> //2代碼和1代碼僅有gets 和fgets的差別。
int isPalindrome(char str1[],int n) //當輸入aba時,1代碼輸出的是YES,2代碼是NO,請問為什么會出現這種問題?
{ //本人是大一新生,才學c語言,希望能夠有詳細的解釋。
char str2[999]; //gets是書上學的,但是有警告,fgets是我在百度上學的,但是在這里出了問題。
int i;
int len;
len=strlen(str1);
for(i=0;i<len;i++)
{
str2[i]=str1[len-1-i];
}
for(i=0;i<=len;i++)
{
if(str1[i]!=str2[i])
break;
}
if(i<len)
return 0;
else
return 1;
}
int main (int argc ,char * argv[])
{
char str1[999];
int x;
gets(str1);
x=isPalindrome(str1,1000);
if(x==1)
printf("YES");
else
printf("NO");
return 0;
}
#include <stdio.h>
#include <string.h>
int isPalindrome(char str1[],int n)
{
char str2[999];
int i;
int len;
len=strlen(str1);
for(i=0;i<len;i++)
{
str2[i]=str1[len-1-i];
}
for(i=0;i<=len;i++)
{
if(str1[i]!=str2[i])
break;
}
if(i<len)
return 0;
else
return 1;
}
int main (int argc ,char * argv[])
{
char str1[999];
int x;
fgets(str1,1000,stdin);
x=isPalindrome(str1,1000);
if(x==1)
printf("YES");
else
printf("NO");
return 0;
}
uj5u.com熱心網友回復:
當使用了s[strlen(s)-1]='\0'的方法后,學校cg系統的一個資料檢測其出錯,就是有一個資料要求輸出yes,但是輸出的是no,但我不知道是什么資料錯了。轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/214415.html
標籤:C++ 語言
上一篇:QT信號和槽函式
下一篇:求助C語言的feof
