发布网友
共3个回答
热心网友
可以用栈来做但是也要用到strlen
sack sa;
对于一个指定的串先用strlen计算他的总长度len;
然后遍历这个串
对于len为偶数的情况
前面len/2个字符进栈
到len/2 +1个字符的时候 从sa里面弹栈出来,sa.pop()得到出来的这个元素p
比较p和len/2 +1
然后依次往后取 直到栈空为止 中途有一个不匹配 就不是对折串了
然后是奇数情况 前面(len-1)/2个字符串进栈 从(len-1)/2+2个字符开始比较就行了
热心网友
int main(int argc, char* argv[])
{
// 第一个参数是字符需要判断的字符串
if(argc<2)
printf("no input string\n");
char* p=argv[1];
int n=0;
int h=0;
int e=0;
while(p && *p++) n++;
e=n-1;
n/=2;
p=argv[1];
while(n--)
{
if(p[h++]!=p[e--])
break;
}
if(n<0)
printf(" yes\n");
else
printf(" no\n");
return 0;
}
热心网友
很简单
马上就好
ABCBA 算
那ABBA算吗?
#include <stdio.h>
main()
{
int i,flag=0,nLen=0;
char *p,buffer[100]={0};
p=buffer;
gets(buffer);
while (*p++)
nLen++;
if (nLen%2!=0)
nLen--;
for (i=0;i<nLen/2;i++)
if (buffer[i]!=buffer[nLen-i])
{
flag=1;
break;
}
if (flag)
{
printf("no\n");
}else
printf("yes\n");
}
有问题请追问 满意记得采纳追问能否不用指针呢?