c语言

c语言判断是否为回文串的方法是什么

小亿
97
2023-11-01 14:03:58
栏目: 编程语言

判断一个字符串是否为回文串的方法可以使用两个指针分别从字符串的开头和结尾向中间移动,每次比较指针位置上的字符是否相等,如果相等则继续移动指针,直到两个指针相遇或者出现不相等的情况。

具体步骤如下:

  1. 定义两个指针,一个指向字符串的开头,一个指向字符串的结尾。
  2. 使用循环判断两个指针指向的字符是否相等,如果相等则继续移动指针,直到两个指针相遇或者出现不相等的情况。
  3. 如果两个指针相遇,则说明字符串是回文串;否则,字符串不是回文串。

示例代码如下:

#include <stdio.h>
#include <stdbool.h>
#include <string.h>

bool isPalindrome(char *str) {
    int start = 0;
    int end = strlen(str) - 1;
    
    while (start < end) {
        if (str[start] != str[end]) {
            return false;
        }
        
        start++;
        end--;
    }
    
    return true;
}

int main() {
    char str[] = "abcdeedcba";
    
    if (isPalindrome(str)) {
        printf("The string is a palindrome.\n");
    } else {
        printf("The string is not a palindrome.\n");
    }
    
    return 0;
}

上述代码中,函数isPalindrome用来判断字符串是否为回文串。首先定义两个指针startend,分别指向字符串的开头和结尾。然后使用循环判断两个指针指向的字符是否相等,如果相等则继续移动指针,直到两个指针相遇或者出现不相等的情况。如果两个指针相遇,则说明字符串是回文串,返回true;否则,字符串不是回文串,返回false。在main函数中,我们给出了一个字符串例子,通过调用isPalindrome函数判断该字符串是否为回文串,并输出相应的结果。

0
看了该问题的人还看了