📅  最后修改于: 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,表示该字符串是回文。