假设我们有一个字符串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