回文是指正着读和倒着读都相同的字符串,比如"level"、"radar"等。在C语言中,我们可以使用数组来处理回文问题。
下面是一个示例程序,通过数组处理回文问题:
#include <stdio.h>
#include <string.h>
int isPalindrome(char str[])
{
int len = strlen(str);
int i, j;
for (i = 0, j = len - 1; i < j; i++, j--) {
if (str[i] != str[j]) {
return 0;
}
}
return 1;
}
int main()
{
char str[100];
printf("Enter a string: ");
scanf("%s", str);
if (isPalindrome(str)) {
printf("%s is a palindrome\n", str);
} else {
printf("%s is not a palindrome\n", str);
}
return 0;
}
在该程序中,我们定义了一个函数isPalindrome
来判断给定的字符串是否是回文。函数首先获取字符串的长度,然后使用两个指针i
和j
分别指向字符串的开头和结尾,逐步向中间移动,判断对应位置的字符是否相同,如果有不同的字符则返回0,表示不是回文;如果所有字符都相同,则返回1,表示是回文。
在main
函数中,我们首先输入一个字符串,然后调用isPalindrome
函数来判断该字符串是否是回文,最后根据函数的返回值输出结果。
你可以在自己的电脑上编译并运行这个程序,输入不同的字符串来测试回文判断的功能。