c语言

c语言判断一个字符串是否为回文串

小亿
222
2023-12-28 08:20:14
栏目: 编程语言

要判断一个字符串是否为回文串,可以采取以下步骤:

  1. 定义两个指针,一个指向字符串的开头,一个指向字符串的结尾。
  2. 对于每一对指针指向的字符,比较它们是否相等。如果相等,则将两个指针都向中间移动一位;如果不相等,则说明字符串不是回文串。
  3. 重复步骤2,直到两个指针相遇或者交叉。
  4. 如果两个指针相遇,则说明字符串是回文串;如果两个指针交叉,则说明字符串不是回文串。

下面是一个示例代码:

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

int isPalindrome(char* str) {
    int start = 0;
    int end = strlen(str) - 1;
    
    while(start < end) {
        if(str[start] != str[end]) {
            return 0;   // 不是回文串
        }
        
        start++;
        end--;
    }
    
    return 1;   // 是回文串
}

int main() {
    char str[100];
    printf("请输入一个字符串:");
    scanf("%s", str);

    if(isPalindrome(str)) {
        printf("%s 是回文串\n", str);
    } else {
        printf("%s 不是回文串\n", str);
    }
    
    return 0;
}

上述代码通过比较字符串的首尾字符来判断是否为回文串。在比较过程中,如果发现不相等的字符,则可以直接返回0,表示不是回文串。最后根据函数返回值来输出结果。

0
看了该问题的人还看了