的实现如下:

#include <stdio.h>
#include <string.h>

#define MAX_LEN 100

int main()
{
    char str[MAX_LEN];
    int len, i;
    int flag = 1;

    printf("请输入一个以 @ 结尾的字符串:\n");
    fgets(str, MAX_LEN, stdin);
    len = strlen(str) - 1;  // 去掉结尾的 \n

    for (i = 0; i < len / 2; i++) {
        if (str[i] != str[len - 1 - i]) {
            flag = 0;
            break;
        }
    }

    if (flag) {
        printf("是回文字符串。\n");
    } else {
        printf("不是回文字符串。\n");
    }

    return 0;
}

该算法首先读入一个以 '@' 结尾的字符串,然后判断该字符串是否是回文字符串。回文字符串指的是正读和倒读都一样的字符串,例如 "level"、"noon" 等。

算法的实现思路是:从字符串的两端开始向中间遍历,依次比较对应位置上的字符是否相等,如果有不相等的字符,则说明该字符串不是回文字符串。如果遍历结束时所有位置上的字符都相等,则说明该字符串是回文字符串。

需要注意的是,fgets() 函数读入字符串时会一并读入结尾的换行符,因此需要将字符串长度减 1 才能正确计算字符串的长度

试写一个算法判别读入的一个以‘’为结束符的字符序列是否是回文。c语言

原文地址: http://www.cveoy.top/t/topic/eZJd 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录