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

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