使用指针在C语言中检查字符串是否为回文


假设我们有一个字符串 s。我们需要检查给定的字符串是否为回文。我们需要使用 C 语言中的指针来解决这个问题。

因此,如果输入类似于 s = "racecar",则输出为 True。

为了解决这个问题,我们将遵循以下步骤:

  • length := 字符串的长度
  • forward := 指向字符串的第一个字符
  • reverse := 指向字符串的最后一个字符
  • 当 reverse 的位置 >= forward 的位置时,执行以下操作:
    • 如果 reverse 指向的字符与 forward 指向的字符相同,则:
      • forward 加 1,reverse 减 1
    • 否则:
      • 退出循环
  • 如果 forward 的位置 >= reverse 的位置,则:
    • 返回 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

更新于: 2020-12-29

8K+ 次浏览

启动你的 职业生涯

通过完成课程获得认证

开始学习
广告
© . All rights reserved.