鱼C论坛

 找回密码
 立即注册
查看: 4445|回复: 8

判断字符串是否为回文 (里面有一句不懂……)

[复制链接]
发表于 2012-8-20 21:50:50 | 显示全部楼层 |阅读模式
18鱼币
  1. 函数fun的功能是: 判断字符串是否为回文?若是, 函数返回1, 主函数中输出: YES, 否则返回0, 主函数中输出NO。回文是指顺读和倒读都一样的字符串。  例如, 字符串LEVEL是回文, 而字符串123312就不是回文。#include <stdio.h>
  2. #include <string.h>

  3. void main()
  4. {
  5.     char s[10];
  6.     printf("Enter a string: ");   
  7.     gets(s);
  8.     printf("\n\n");
  9.     puts(s);
  10.     if (fun(s))
  11.     {
  12.          printf("YES\n");
  13.     }
  14.     else
  15.     {
  16.         printf("NO\n");
  17.     }
  18. }

  19. int fun(char *str)
  20. {
  21.     int i, j = strlen(str);
  22.     for (i=0; i<j/2; i++)
  23.     {
  24.         if (str[i] !=  str[j-i-1])                 // 这里【j-i-1】为什么要有个-1呢?  假如i是0的时候不就成了第一个                                                         // 元素跟倒数第二个元素比较了吗?
  25.             return 0;
  26.         else
  27.             return 1;
  28.     }
  29. }
复制代码

最佳答案

查看完整内容

在内存中大概是这样的
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-8-20 21:50:51 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-8-20 22:59:32 | 显示全部楼层
数组是从0开始的到strlen()-1
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-8-20 23:04:58 | 显示全部楼层
弱弱的说下,fun函数是不是写错了 return 1 一个在循环外边吧
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-8-20 23:35:08 | 显示全部楼层
楼上说的对
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-8-21 22:15:15 | 显示全部楼层
wangyexin 发表于 2012-8-20 22:59
数组是从0开始的到strlen()-1

最后一个元素是不是默认的“\0”??
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-8-22 11:31:57 | 显示全部楼层
Believe 发表于 2012-8-21 22:15
最后一个元素是不是默认的“\0”??

strlen函数的返回值不包含最后的'\0',比如字符串是"string",j==6,str[j]=='\0',str[j-1]=='g'
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-8-22 16:41:03 | 显示全部楼层
the_one 发表于 2012-8-22 11:31
strlen函数的返回值不包含最后的'\0',比如字符串是"string",j==6,str[j]=='\0',str[j-1]=='g'

哦哦,最后一个元素就是第j-1个啊,我挺奇怪第j个是什么……
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-8-25 15:19:22 | 显示全部楼层
:lol:lol学习了
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-11-14 17:53

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表