每日一道c语言编程题,第5题(经典题 判断回文数)

编写一个程序,输入一个字符串,判断它是否为回文字符串。

#include <stdio.h>

#include <string.h>

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;

}

这个程序的功能是输入一个字符串,判断它是否为回文字符串,其主要思路如下:

  1. 定义一个字符数组str,用于存储输入的字符串。

  2. 使用fgets函数输入字符串,第一个参数是字符数组的地址,第二个参数是最大读入字符数,第三个参数是输入流,这里使用stdin表示标准输入流。

  3. 判断输入的字符串是否包含换行符\n,如果包含则将其替换为字符串结束符\0,这是因为fgets函数会自动读入换行符。

  4. 定义两个整型变量ij,分别表示字符串的头和尾,初始化为0和字符串长度减1。

  5. 使用循环判断字符串是否为回文字符串,即从头和尾依次比较对应位置的字符是否相同,如果不同则说明不是回文字符串,将标志flag置为0并跳出循环。

  6. 根据标志flag的值输出判断结果,如果为1则说明是回文字符串,否则不是回文字符串。



原文链接:,转发请注明来源!