假设我们有一个字符串s。我们必须检查给定的字符串是否是回文。我们必须使用C中的指针解决此问题。
因此,如果输入类似于s =“ racecar”,则输出将为True。
为了解决这个问题,我们将遵循以下步骤-
长度:=字符串大小
forward:=指向字符串的第一个字符
反向:=指向字符串的最后一个字符
而反向位置> =正向位置,则
从循环中出来
向前增加,向后减少1
如果反向指向的字符与正向指向的字符相同,则
除此以外
如果正向位置> =反向位置,则
返回True
返回False
让我们看下面的实现以更好地理解-
#include <stdio.h> #include <string.h> int solve(char *string){ int length; char *forward, *reverse; length = strlen(string); forward = string; reverse = forward + length - 1; for (forward = string; reverse >= forward;) { if (*reverse == *forward) { reverse--; forward++; } else break; } if (forward > reverse) return 1; else return 0; } int main(){ char string[] = "racecar"; printf("%d", solve(string)); }
"racecar"输出结果
1