回文(palindrome)是许多语言中都存在的一种有趣现象,即一段文字从左 到右读和从右到左读的顺序是一致的,如“袖罗垂影瘦,瘦影垂罗袖”。请分别实现 函数ispt loop和isptrecursion,且要求ispt loop用循环实现回文判断, 而ispt recursion用递归实现回文判断。两个函数的原型分别是: int ispt loop(const char *);//如是回文,则返回 1,否则返回 0
时间: 2023-02-05 12:53:15 浏览: 44
回文,输入一段文字,会判断你输入的文字是不是回文
首先,我们来看一下循环实现的函数ispt loop。首先,我们需要定义一个指向字符串首字符的指针和一个指向字符串末尾字符的指针,然后使用一个循环进行判断。在循环中,我们每次比较首尾两个字符是否相同,如果相同,则继续循环,否则返回0。如果循环结束,则返回1。
示例代码如下:
int ispt loop(const char *s) {
const char *p = s, *q = s + strlen(s) - 1; // 定义指针p和q分别指向字符串首字符和末尾字符
while (p < q) { // 当p和q指向的位置不相同时,继续循环
if (*p != *q) return 0; // 如果首尾两个字符不相同,则返回0
p++; // p指向下一个字符
q--; // q指向上一个字符
}
return 1; // 循环结束,返回1
}
接下来,我们来看一下递归实现的函数ispt recursion。这个函数的实现思路是,将字符串不断分成左右两部分,递归调用自身,判断两部分是否都是回文。如果两部分都是回文,则当前字符串也是回文。
示例代码如下:
int ispt recursion(const char *s) {
int len = strlen(s);
阅读全文