编写一个程序,输入一个字符串,判断它是否为回文字符串。
#include
#include
int main()
{
char str[100];
int i, j, flag = 1;
printf("请输入一个字符串:");
fgets(str, 100, stdin); // 使用fgets函数输入字符串
// 去掉输入字符串中的换行符
if(str[strlen(str) - 1] == '\n')
{
str[strlen(str) - 1] = '\0';
}
for(i = 0, j = strlen(str) - 1; i < j; i++, j--)
{
if(str[i] != str[j]) // 判断是否为回文字符串
{
flag = 0;
break;
}
}
if(flag)
{
printf("%s是回文字符串\n", str);
}
else
{
printf("%s不是回文字符串\n", str);
}
return 0;
}
这个程序的功能是输入一个字符串,判断它是否为回文字符串,其主要思路如下:
定义一个字符数组str,用于存储输入的字符串。
使用fgets函数输入字符串,第一个参数是字符数组的地址,第二个参数是最大读入字符数,第三个参数是输入流,这里使用stdin表示标准输入流。
判断输入的字符串是否包含换行符\n,如果包含则将其替换为字符串结束符\0,这是因为fgets函数会自动读入换行符。
定义两个整型变量i和j,分别表示字符串的头和尾,初始化为0和字符串长度减1。
使用循环判断字符串是否为回文字符串,即从头和尾依次比较对应位置的字符是否相同,如果不同则说明不是回文字符串,将标志flag置为0并跳出循环。
根据标志flag的值输出判断结果,如果为1则说明是回文字符串,否则不是回文字符串。
领取专属 10元无门槛券
私享最新 技术干货