| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1726 人关注过本帖
标题:[讨论]字符串问题!!!
只看楼主 加入收藏
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
收藏
得分:0 
在第3种情况下
而且我感觉到这道题目散发出一阵杀气。好象不是想象中的那么简单。

淘宝杜琨
2005-02-24 18:20
kaikai
Rank: 1
等 级:新手上路
帖 子:236
专家分:0
注 册:2005-1-7
收藏
得分:0 
晕...再次的描述居然和开头的是不差一个字符的...貌似还不能理解你的问题...

实在我想不出你的问题了...我服了...请赐教:)

Have you visit acm.tongji. lately?
2005-02-24 18:56
Tainform
Rank: 1
等 级:新手上路
帖 子:54
专家分:0
注 册:2004-9-26
收藏
得分:0 
我是来让大家赐教的,我不知道啊,就是希望讨论个结果出来。我重新的描述不是说清楚了吗?同样一对str1和str2、函数不具备随即性、是两次或多次不相关的运行,那么,在什么情况下运行结果不一样?
2005-02-24 19:01
kaikai
Rank: 1
等 级:新手上路
帖 子:236
专家分:0
注 册:2005-1-7
收藏
得分:0 
唯一能想到的就是函数写错了...

Have you visit acm.tongji. lately?
2005-02-24 19:17
Tainform
Rank: 1
等 级:新手上路
帖 子:54
专家分:0
注 册:2004-9-26
收藏
得分:0 
当然前提是函数无错呢?
2005-02-24 19:47
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 
如果这是一个试题或者书上的练习,那么,我可以断定你的表述是有问题,没有正确表述原题。如果你是的写的程序有这种问题,那么请你贴上原码,请不要试图用文字来表述你的问题,因为你本来就对你自己的问题没有一个正确的认识才上论坛上问的,所以,不能保证你对问题的表述是原汁原味的。

九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2005-02-24 20:18
Tainform
Rank: 1
等 级:新手上路
帖 子:54
专家分:0
注 册:2004-9-26
收藏
得分:0 
int Counts(char *str_p,char *str_s,int len_p,int len_s)

{  int i,j,k,flag,counts=0;

    flag=len_s-len_p;

    for(i=-1;i<flag;)

    {

       i++;j=i;k=0;

       while(*(str_s+j)==*(str_p+k))

        if(k==len_p-1)

        { counts++;break;}

         else

          { j++;k++;}

     }

 return counts;

}
2005-02-25 09:58
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 
请给出错的例子,虽然这个函数写得很差,但是我还是看不出你说的那种情况.

九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2005-02-25 10:32
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
收藏
得分:0 
理论上他不会出现楼主所说的情况啊!

虽然这个funtion很烂

淘宝杜琨
2005-02-25 11:52
kaikai
Rank: 1
等 级:新手上路
帖 子:236
专家分:0
注 册:2005-1-7
收藏
得分:0 
所以我说1+1在算错的情况下不等于2么。 楼主你的程序是错误的。 首先整理一下你的代码: int Counts(char *str_p,char *str_s,int len_p,int len_s) { int i,j,k,flag,counts=0; flag=len_s-len_p; for(i=-1;i<flag;) { i++; j=i; k=0; while(str_s[j]==str_p[k]) // 注意这里,没有判断字符串结束的结束条件,k<len_p { if(k==len_p-1) // 还有这里,如果你的len_p为字符串的长度,那么这里少判断了最后一个字符。姑且当你的len_p为字符串占用空间的大小好了... { counts++; break; } j++; //原来这里的else是没有必要的,因为if条件满足时有break k++; } } // 这里原来少一个花括号的,不过去掉了 "else{" 之后就刚刚好... return counts; } 楼主煞费苦心,难道只为了让我们帮你改一个程序?还是真的有奇妙的不可理解的现象存在?想起候老大的那句:源码之前,了无秘密...看来说得非常有道理。 我这里完全说错了...不要理会我的胡言乱语...

[此贴子已经被作者于2005-2-25 22:24:05编辑过]


Have you visit acm.tongji. lately?
2005-02-25 21:45
快速回复:[讨论]字符串问题!!!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015656 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved