//利用比较字符串字符是否相等来判断
#include
#include
int main() {
char p[100]; //接收输入
int length = 0;
int startIndex = 0;
int endIndex = 0;
int flag = 0; //用来判断是否非回文
scanf("%s",p); //输入
length = strlen(p);//获得字符串的长度
for (startIndex = 0, endIndex = length-1;
startIndex < length/2, endIndex >= length/2; endIndex--, startIndex++) {
if (length%2 == 0) { //偶数
if(p[startIndex] == p[endIndex])
continue;
else {
printf("%s: NO", p);
flag=1;
break;
}
} else {
if (endIndex != length/2) {
if(p[startIndex] == p[endIndex])
continue;
else {
printf("%s: NO", p);
flag=1;
break;
}
} else {
break;
}
}
}
if (flag == 0) {
printf("%s: YES", p);
}
return 0;
}
太简单了,建议用2个指针来做,首尾比较,有一个不符既输出no,否则输出yes
/****************************
-------------------------------------------------------结账啦 &*& 结账啦 *****************************/
********************************************
--------------------------------------------------------------- 最简代码
********************************************
#include
#include
using namespace std;
int main()
{
char* str= new char[100];
cin>>str;
char* p=str;
char* q=p+strlen( str )-1;
for ( ;p if ( *p!=*q ){
cout<<"NO"<
}
}
cout<<"yes"<
return 0;
}
输入行字符串,判断是否为回文
如果是,打印YES;如果不是,打印NO;
程序如下:
#include"stdio.h"
#include"string.h"
#define n 50
void main()
{
int i;
char st1[n+1];
char *pst1,*pst2;
printf("please input a string:");
scanf("%s",st1);
pst1=st1;
pst2=st1;
while(*pst1!='\0')
pst1++;
i=0;
pst1--;
while(*pst1==*pst2 )
{
pst1--;
pst2++;
i++;
}
if(i==strlen(st1))
printf("yes\n");
else
printf("no\n");
}
#include
#include
/*
返回1回文
返回0不是回文
*/
int f(char* str)
{
int i = 0;
int nLen = strlen(str);
for(i=0; i < nLen/2; i++)
{
if(str[i] != str[nLen-1-i])
{
return 0;
}
}
return 1;
}
int main()
{
char str[1024];
scanf("%s", str);
if(f(str))
{
printf("YES!\n");
}
else
{
printf("NO!\n");
}
return 0;
}
# include
# include
int palindrome(char* s);
int main()
{
char str[100];
int cmp;int n;
cin>>n;
while(n--)
{
cin>>str;
cmp=palindrome(str);
(cmp==1)?(cout<<"YES!"<
return 0;
}
int palindrome(char* s)
{
int len;
len=strlen(s);
for (int i=0;i < len/2;i++)
{
if (s[i]!=s[len-i-1])
return 0;
}
return 1;
}