用C++编写程序,判断给定字符串是否为回文(回文指正读和逆读都一样的字符串
5个回答
展开全部
是说回族文字吧?如果是这样的话,你的这个判断标准应该是有问题,需要查询各种字符集的范围,根据这个字符集的范围来做出判断才是正确的做法。
如果你的说的判断方法是正确的话,是写个简单的函数检查输入字符串是否满足你的要求就可以了。
如果你的说的判断方法是正确的话,是写个简单的函数检查输入字符串是否满足你的要求就可以了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
printf("请输入一个字符串");
char in[];
int len = sizeof (in);
gets(in);
for(int i=0;i<len/2;i++) //2分查找法
{
if(in[i]!=in[len-i]) //符数组遍历并且头尾比较 ,不相等
printf("输入的字符串不是回文");
}
char in[];
int len = sizeof (in);
gets(in);
for(int i=0;i<len/2;i++) //2分查找法
{
if(in[i]!=in[len-i]) //符数组遍历并且头尾比较 ,不相等
printf("输入的字符串不是回文");
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把字符串拆分两部分 比如7个字符 分4组比较 第一个和最后一个 第二个和倒数第二个
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <stdio.h>
#include <string.h>
#include <malloc.h>
void main()
{
char *test = "if i had a hifi";
char *modify = NULL;
char *pOrg = NULL;
int len = 0;
len = strlen(test);
modify = (char *)malloc(len + 1);
if(modify != NULL)
{
memset(modify, 0, len + 1);
pOrg = modify;
}
while(*test)
{
if(*test != 0x20)
{
*modify++ = *test;
}
// printf("test:%c\n", *test);
// printf("modify:%c\n", *modify);
test++;
}
printf("modify:%s\n", pOrg);
}
貌似有个指针问题的,记不得了
#include <string.h>
#include <malloc.h>
void main()
{
char *test = "if i had a hifi";
char *modify = NULL;
char *pOrg = NULL;
int len = 0;
len = strlen(test);
modify = (char *)malloc(len + 1);
if(modify != NULL)
{
memset(modify, 0, len + 1);
pOrg = modify;
}
while(*test)
{
if(*test != 0x20)
{
*modify++ = *test;
}
// printf("test:%c\n", *test);
// printf("modify:%c\n", *modify);
test++;
}
printf("modify:%s\n", pOrg);
}
貌似有个指针问题的,记不得了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
/****************************************
*函数名:f
*类属 :全局函数
*参数 :s 以0结束的字符串
*返回值:1,0
*功能 :如果s是对称的回访串,返回1,不是则返回0
******************************************/
int f(char* s)
{
if(NULL == s)return 0;
char *head=s;//指向第一个字符
char *tail=s+strlen(s)-1;//指向最后一个字符
while(true)
{
if(head >= tail)return 1;
if(*head == *tail)
{
head++;
tail--;
}
else
{
return 0;
}
}
}
*函数名:f
*类属 :全局函数
*参数 :s 以0结束的字符串
*返回值:1,0
*功能 :如果s是对称的回访串,返回1,不是则返回0
******************************************/
int f(char* s)
{
if(NULL == s)return 0;
char *head=s;//指向第一个字符
char *tail=s+strlen(s)-1;//指向最后一个字符
while(true)
{
if(head >= tail)return 1;
if(*head == *tail)
{
head++;
tail--;
}
else
{
return 0;
}
}
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询