#include <stdio.h>
#include <windows.h>
#include <iostream>
#include <cstdio>
#include <string.h>
using namespace std;
int palindrome(char *s) {
int result = 1;
int i = 0;
int begin = 0;
int end = 0;
while (true) {
if (s[i] == "\0")
break;
if (s[i] != " ") {
if (begin <= 0 )
begin = i;
end = i;
}
i++;
//找到字串中第一個不是空格和最後一個不是空格的位置,
//分別用begin和end表示
for (int j = begin; j < end;j++, end--)
if (s[j] != s[end])
result = 0;
//判斷迴文,如果
return result;
int main()
{
char s[70];
printf("Input a string : ");
gets_s(s);
if (palindrome(s))
printf("字串%s是迴文!\n",s);
else
printf("字串%s不是迴文!\n",s);
我是用java的,C的庫函式不是很熟,所以裡面有些方法可能有點累贅,但是測試過功能是正確的~
#include <stdio.h>
#include <windows.h>
#include <iostream>
#include <cstdio>
#include <string.h>
using namespace std;
int palindrome(char *s) {
int result = 1;
int i = 0;
int begin = 0;
int end = 0;
while (true) {
if (s[i] == "\0")
break;
if (s[i] != " ") {
if (begin <= 0 )
begin = i;
end = i;
}
i++;
}
//找到字串中第一個不是空格和最後一個不是空格的位置,
//分別用begin和end表示
for (int j = begin; j < end;j++, end--)
if (s[j] != s[end])
result = 0;
//判斷迴文,如果
return result;
}
int main()
{
char s[70];
printf("Input a string : ");
gets_s(s);
if (palindrome(s))
printf("字串%s是迴文!\n",s);
else
printf("字串%s不是迴文!\n",s);
gets_s(s);
}
我是用java的,C的庫函式不是很熟,所以裡面有些方法可能有點累贅,但是測試過功能是正確的~