最近开始学遇到的一个小问题
先上代码:
#include <stdio.h>
#include <string.h>
int main()
{
char s[100];
gets(s);
int i,j;
for (i = 0, j = strlen(s)-1; i < strlen(s), j >= 0; i++, j--)
{
if (s[i] != s[j])
break;
}
if (i == strlen(s)) {
printf_s("yes");
}
else {
printf_s("no");
}
return 0;
}
这段程序的功能是判断一个字符串是否为回文字符串。具体来说,程序使用了 gets
函数读入一个字符串,然后使用双指针法遍历该字符串。
具体来说,指针i指向字符串头部,j指向尾部。依次比较 i 和 j 指向的字符,如果相等,则继续进行下一轮比较;如果不相等,则输出 "no" 并退出循环。如果全部比较结束,都没有出现不相等的情况,则输出 "yes" 表示该字符串是回文字符串。
需要注意的是,程序需要在比较过程中同时检查指针i和j的位置关系,即当i>=j时,比较结束。