6-25 判断回文 (10分)pta,c

该博客介绍了一个编程问题,要求编写一个函数判断输入的字符串是否为回文,即从左到右和从右到左读都相同的字符序列。函数需要接收字符串首地址和一个中间字符的指针,如果字符串是回文则返回1,否则返回0。题目保证字符串长度在1至2000之间,不包含空格等分隔符。
部署运行你感兴趣的模型镜像

题目要求:

如果一串字符从左至右读和从右至左读相同,那么这串字符就是回文(Palindrome)。例如,ABCBA是回文,而ABCD则不是。本题要求编写一个判断字符串是否为回文的函数,并且通过函数参数获取字符串的中间字符(如果中间是两个字符,则获取靠左的那一个,例如字符串是ABCDEF,则中间字符是C)。题目保证输入的字符串长度在1至2000之间且不含空格、换行等分隔符。

函数接口定义:

int isPalindrome(const char* str, char* pch);

其中 str 和 pch 都是用户传入的参数。 str 是字符串的首地址; pch 是传入的要存放字符串中间字符的变量的地址。如果字符串是回文,函数须返1,否则返回0。

裁判测试程序样例:

/* 测试程序仅为示例,实际的测试程序可能不同 */
#include <stdio.h>
#include <string.h>
#define MAXLENGTH 100
int isPalindrome(const char* str, char* pch);
int main(){
    char str[MAXLENGTH],mid;
    scanf("%s",str);
    if(isPalindrome(str, &mid))
        printf("是回文!中间字符是%c\n",mid);
    else
        printf("不是回文!中间字符是%c\n",mid);
    return 0;
}

输入样例:

ABCDACBC

输出样例:

不是回文!中间字符是D

/* 你编写的函数代码将被嵌在这里 */


int palindrome( const char *s ){
	const char *p,*q;
	int count=0,flag=-1;
	p=s;
	q = s + strlen(s) - 1;
	while(p<q){
	if((*p++)!=(*q--))
	return 0;
}
    return 1;
}

int isPalindrome( const char* str, char* pch){
	int n=strlen(str);
	if(n%2==0)
	*pch=*(str+n/2-1);
	else *pch=*(str+n/2);//地址的改变需要指针是同一基类型
	return palindrome(str) ; 
} 

您可能感兴趣的与本文相关的镜像

Facefusion

Facefusion

AI应用

FaceFusion是全新一代AI换脸工具,无需安装,一键运行,可以完成去遮挡,高清化,卡通脸一键替换,并且Nvidia/AMD等显卡全平台支持

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值