C语言判断回文字符串:高效代码实现及解析
#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;
}
代码解析:
- 头文件包含:
#include <stdio.h>和#include <string.h>分别包含了标准输入输出函数库和字符串处理函数库,用于实现代码中的输入输出和字符串长度获取等功能。 - 变量定义:
str[100]: 用来存储用户输入的字符串,大小为100个字符。i, j: 循环变量,用来遍历字符串。len: 用于存储字符串的长度。flag: 用于标记字符串是否为回文,初始值为1,表示是回文。
- 输入字符串: 使用
printf()函数提示用户输入字符串,并使用scanf()函数将用户输入的字符串存储到str数组中。 - 计算字符串长度: 使用
strlen()函数计算字符串的长度,并将结果存储在len变量中。 - 判断回文: 使用一个循环,从字符串的两端向中间遍历,比较对应的字符。如果所有字符都相等,则
flag变量的值保持为1,表示字符串为回文。如果遇到不相等的字符,则将flag变量的值改为0,表示字符串不是回文。 - 输出结果: 根据
flag变量的值,使用printf()函数输出字符串是否为回文的信息。
示例:
输入:racecar
输出:It is a palindrome
输入:hello
输出:It is not a palindrome
总结:
本代码使用了一个简单易懂的循环,通过比较字符串两端对应的字符来判断字符串是否为回文。代码结构清晰,易于理解和修改,可以作为C语言学习者学习字符串处理和循环控制的参考示例。
原文地址: https://www.cveoy.top/t/topic/phKI 著作权归作者所有。请勿转载和采集!