求教

arthur_zjy 2011-12-25 07:28:18
题目要求:键盘读入一个字符串(约定:字符数≤127字节),检查该字符串是否是回文。所谓回文即正向与反向的拼写都一样,例如:adgda

我的代码:
#include<stdio.h>
#include<string.h>
int main (void)
{
int i, j, len;
char str[127], str1[127];
printf("Plese input string:");
gets(str);
len = strlen(str);
for (i = 0,j = len - 1; i < len, j >= 0; i ++, j--)
{
str1[j] = str[i];
}
if (strcmp(str,str1))
{
printf("\n%s bu shi hui wen.",str);
}
else printf("\n%s shi hui wen",str);
}
哪里不对啊?我调试的时候感觉是j的范围大了,但是不会改。
...全文
47 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
c090869 2011-12-25
  • 打赏
  • 举报
回复
是str1[len]要=='\0'
arthur_zjy 2011-12-25
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 cfjtaishan 的回复:]

for (i = 0,j = len - 1; i < len && j >= 0; i ++, j--)//修改处,把中间的逗号改为'&&';
[/Quote]
有什么区别?
arthur_zjy 2011-12-25
  • 打赏
  • 举报
回复
指针还没有学。
  • 打赏
  • 举报
回复
设头尾指针 头指针++ 尾指针-- 直到他们相等才跳出循环 说明是回文
自信男孩 2011-12-25
  • 打赏
  • 举报
回复
for (i = 0,j = len - 1; i < len && j >= 0; i ++, j--)//修改处,把中间的逗号改为'&&';
{
str1[j] = str[i];
}
str1[len] = '\0';//添加一句;拷贝的数据要有一个结束符'\0';
if (strcmp(str,str1))
{
printf("\n%s bu shi hui wen.",str);
}
你试试吧。

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧