鱼C论坛

 找回密码
 立即注册
查看: 3148|回复: 4

两个版本的函数any,哪一个比较好呢?

[复制链接]
发表于 2011-7-1 00:43:26 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 yuprxk 于 2011-7-1 23:51 编辑

/*首先要说的是,这两个函数any,不管哪一个都有缺陷。我想问一下,哪一个较好呢?
*/
  1. #include <stdio.h>

  2. int any(char s[],const char d[],const int i)

  3. {

  4. int res;

  5. int si ;

  6. res = -1;

  7. for( si = 0; s[si] != '\0' ; si++)

  8. {

  9.   if(s[si] == d[i])


  10.    res = si;

  11. }

  12. return res;

  13. }



  14. int main()

  15. {

  16. int i;

  17. char tests[] = "What I can see";

  18. char testd[] = "tue";

  19. i = any(tests,testd,0);

  20.   

  21. if(i == -1)

  22.   printf("Not find\n");

  23. else

  24.   printf("Find\n");

  25. return 0;

  26. }

  27. /*

  28. *另一个版本的any,与上一个主要 的区别是return语句。

  29. */

  30. #include <stdio.h>

  31. int any(char s[],const char d[],const int i)

  32. {

  33. int si ;

  34. for( si = 0; s[si] != '\0' ; si++)

  35. {

  36.   if(s[si] == d[i])//此处的d已经修改为d[i]
  37.    return si;

  38. }

  39. return -1;

  40. }



  41. int main()

  42. {

  43. int i;

  44. char tests[] = "What I can see";

  45. char testd[] = "tue";

  46. i = any(tests,testd,0);


  47. if(i == -1)

  48. printf("Not find\n");

  49. else

  50. printf("Find\n");

  51. return 0;

  52. }
复制代码

[i]
我想请问一下,这两个版本的any哪一个较好 呢?
[/i]


小甲鱼最新课程 -> https://ilovefishc.com
发表于 2011-7-1 01:07:47 | 显示全部楼层
本帖最后由 excessstone 于 2011-7-1 01:09 编辑

原則上講第二個好,因为提前结束遍历。
但是这两个程序能运行吗?
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2011-7-1 01:10:44 | 显示全部楼层
第二个有较多的分支,可能不易控制。
第一个有点小问题,我本来想返回第一次出现的位置,这倒好,返回的是最后一次出现的位置了。
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2011-7-1 01:30:31 | 显示全部楼层
我现在没有编译器,不过看起来似乎都不会有正确结果的样子。等我试试以后再说。
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2011-7-1 03:24:05 | 显示全部楼层
if(s[si] == d) 这一行有错

        1        IntelliSense: operand types are incompatible ("char" and "const char *")        c:\users\windows\documents\visual studio 2010\projects\anyc\anyc\any.c        17        12        anyc
小甲鱼最新课程 -> https://ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-10-17 03:18

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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