📌  相关文章
📜  C 程序检查给定字符串是否为回文(1)

📅  最后修改于: 2023-12-03 15:29:45             🧑  作者: Mango

判断字符串是否为回文

回文是指正着读和倒着读都是一样的单词、短语或整句话,例如:level、deified、A man, a plan, a canal, Panama!等等。在本文中,我们将介绍如何使用C语言编写一个程序来检查给定字符串是否为回文。

解决方案

一个简单的方法是利用双指针扫描数组来检查回文。首先,我们将指针left指向字符串的开头,将指针right指向字符串的结尾,然后比较它们指向的字符是否相等。如果相等,就将指针left向右移动一位,将指针right向左移动一位,继续比较下一个字符。如果不相等,则该字符串不是回文。

int isPalindromic(char* s) {
    int len = strlen(s);
    int left = 0, right = len - 1;
    while (left < right) {
        if (s[left] != s[right]) {
            return 0;
        }
        left++;
        right--;
    }
    return 1;
}

使用该函数,我们可以很容易地检查一个字符串是否为回文。主函数可以如下所示:

int main(int argc, char* argv[]) {
    if (argc < 2) {
        printf("Please input a string!\n");
        return 1;
    }
    char* s = argv[1];
    if (isPalindromic(s)) {
        printf("The given string is a palindromic!\n");
    } else {
        printf("The given string is not a palindromic!\n");
    }
    return 0;
}

该程序首先检查是否输入了一个字符串,如果没有,则显示错误信息并退出程序。否则,它将指向该字符串的指针传递给isPalindromic函数来检查该字符串是否为回文。

总结

在本文中,我们介绍了如何使用C语言编写一个程序来检查给定字符串是否为回文。我们使用双指针扫描数组来比较字符串的字符,并在发现不相等的字符时返回0,表示该字符串不是回文。否则,我们返回1,表示该字符串是回文。