为了更好地理解,我们始终建议您学习下面列出的C语言编程基础主题
在 C 语言程序中,字符串是一个以空字符结尾的单词或字符序列。这里我们需要找出字符串是否是**回文**。回文是任何字符串或数字,当它反转时,它仍然是相同的。
例如,字符串“**Malayalam**”是一个回文,因为它从前面或后面读起来都是一样的。同样,“**English**”也是一个字符串,但它不是回文,因为它从后面读起来不相同。
这个 C 程序的逻辑是,首先声明两个字符数组,名为 **string** 和 **revstring**。string 数组包含输入字符串,并使用 **revstring** 存储给定字符串的反转。然后声明并初始化变量 **i**、length 和 flag 为零。'**length**' 是存储字符串长度的变量。
之后,我们需要使用带有条件 **string[i]!= '\0'** 的 for 循环找出给定字符串的长度。这意味着它没有到达字符串的末尾。默认情况下,字符串的最后一个字符是 **'\0'**。
计算出给定字符串的长度后,下一步是计算字符串的反转。查找字符串反转的逻辑是使用 `for 循环`将给定字符串的最后一个字符放置到 **revstring** 数组的第一个位置。
现在 **revstring** 数组包含字符串的反转。之后,我们需要检查 string 和 revstring 是否相等。如果字符串相同,则“设置 **flag=1**”,否则“设置 **flag=0**”。然后检查“**flag=1**”,如果是,则显示字符串是回文;否则,显示字符串不是回文。
步骤 1:包含头文件以使用 C 语言程序中的内置函数。
步骤 2:包含头文件 string.h 以处理字符数组。
步骤 3: 声明 2 个字符数组 **string** 和 **revString**。数组 String 用于保存输入字符串,**revString** 用于保存字符串的反转。
步骤 4: 声明整数变量 I、length、flag,并设置 length=0 和 flag=0。
步骤 5: 使用 printf 和 gets() 函数接受字符串。
步骤 6: 使用带有条件 string[i]!= '\0' 的 for 循环找出给定字符串的长度。
步骤 7: 然后使用 for 循环将给定字符串的最后一个字符放置到 revString 的第一个字符。
步骤 8: 之后,使用 for 循环比较两个字符串。
步骤 9: 如果 String 和 revString 相等,则设置 flag=1,否则设置 flag=0。
步骤 10: 如果 flag=1,则显示字符串是回文。
步骤 11: 如果 flag=0,则显示字符串不是回文。
#include <stdio.h>
#include <string.h>
void main()
{
char string[25], revString[25] = {'\0'};
int i,length = 0, flag = 0;
fflush(stdin);
printf("Enter a string\n");
gets(string);
for (i = 0; string[i] != '\0'; i++) /*keep going through each */ {
/*character of the string */
length++; /*till its end */
}
for (i = length - 1; i >= 0; i--) {
revString[length - i - 1] = string[i];
}
for (flag = 1, i = 0; i < length; i++)
{
if (revString[i] != string[i])
flag = 0;
}
if (flag == 1)
printf("%s is a palindrome.", string);
else
printf("%s is not a palindrome", string);
return 0;
}
RUN 1 Enter a string madam madam is a palindrome RUN 2 Enter a string Madam Madam is not a palindrome RUN 3 Enter a string good good is not a palindrome