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

int main() {
    char str[100];
    int i, j, len, flag = 1;
    
    printf('Enter a string:');
    scanf('%s', str);
    
    len = strlen(str);
    
    for (i = 0, j = len - 1; i < len / 2; i++, j--) {
        if (str[i] != str[j]) {
            flag = 0;
            break;
        }
    }
    
    if (flag) {
        printf('It is a palindrome');
    } else {
        printf('It is not a palindrome');
    }
    
    return 0;
}

代码解析:

  1. 头文件包含: #include <stdio.h>#include <string.h> 分别包含了标准输入输出函数库和字符串处理函数库,用于实现代码中的输入输出和字符串长度获取等功能。
  2. 变量定义:
    • str[100]: 用来存储用户输入的字符串,大小为100个字符。
    • i, j: 循环变量,用来遍历字符串。
    • len: 用于存储字符串的长度。
    • flag: 用于标记字符串是否为回文,初始值为1,表示是回文。
  3. 输入字符串: 使用 printf() 函数提示用户输入字符串,并使用 scanf() 函数将用户输入的字符串存储到 str 数组中。
  4. 计算字符串长度: 使用 strlen() 函数计算字符串的长度,并将结果存储在 len 变量中。
  5. 判断回文: 使用一个循环,从字符串的两端向中间遍历,比较对应的字符。如果所有字符都相等,则 flag 变量的值保持为1,表示字符串为回文。如果遇到不相等的字符,则将 flag 变量的值改为0,表示字符串不是回文。
  6. 输出结果: 根据 flag 变量的值,使用 printf() 函数输出字符串是否为回文的信息。

示例:

输入:racecar 输出:It is a palindrome

输入:hello 输出:It is not a palindrome

总结:

本代码使用了一个简单易懂的循环,通过比较字符串两端对应的字符来判断字符串是否为回文。代码结构清晰,易于理解和修改,可以作为C语言学习者学习字符串处理和循环控制的参考示例。

C语言判断回文字符串:高效代码实现及解析

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

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