c语言回文

[复制链接]
查看11 | 回复2 | 2009-2-27 22:09:46 | 显示全部楼层 |阅读模式
为什么这个对?
int circle(char* c) /* 判断是否回文 */
{char c1[81];
strcpy(c1,c);
if(strcmp(c,strrev(c1))==0) /* 一个字符串的反串如果和原串相同则为回文 */
return 1;
return 0;
}
这个错?
int circle(char* c) /* 判断是否回文 */
{char c1[81];
c1=strrev(c);
if(strcmp(c,c1)==0) /* 一个字符串的反串如果和原串相同则为回文 */
return 1;
return 0;
}

回复

使用道具 举报

千问 | 2009-2-27 22:09:46 | 显示全部楼层
strcmp(c,c1)==0是将同一个字符串比较,当然是永远成立的,错在没有实现回文.strcmp(c,strrev(c1))==0是将一个字符串回文后再与原字符串比较,strrev(c1)的作用就是实现回文....
回复

使用道具 举报

千问 | 2009-2-27 22:09:46 | 显示全部楼层
strrev改变了指针的内容也就是说c1=strrev(c); if(strcmp(c,c1)==0) 是永远成立的...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行