| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 485 人关注过本帖
标题:找子串函数
只看楼主 加入收藏
换空依晨
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2013-9-13
结帖率:30.77%
收藏
已结贴  问题点数:10 回复次数:4 
找子串函数
int index(char a[],char b[])//找子串函数:返回子串首次出现的位置
{
int i,j,temp;
for(i=0;i<len(a)-len(b);i++)//循环查找
{
temp=i;
j=0;
while(j<=len(b)&&a[temp]==b[j])//逐个字符判断是否子串
{
temp++;
j++;
}
if(j==len(b))
 return i;
}
return -1;
}
这样能找到子串吗 ,条件不应该是i<len(a)吗,比如字符a:hello ,b:lo, 要找到他必须是a[3]=b[0]吧  如果条件是i<len(a)-len(b);i最大也是i<len(a)-len(b)=3,达不到a[3]啊,求帮忙
搜索更多相关主题的帖子: 香港 
2014-03-05 10:12
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9007
专家分:53942
注 册:2011-1-18
收藏
得分:4 
你自己试试看就行了呗,若不能找到,就改<为<=

BTW: 你还是换本书吧,竟然定义为 int index(char a[],char b[]),这要不知道什么底限才能写得出?
正确写法应该是 size_t index( const char* a, const char* b )
a. 下标索引范围应该是 size_t / ssize_t,不是 int 范围
b. a 和 b 不需要具有可修改属性
c. const char a[] 更特出a是个数组,而const char* a 更特出a是个字符串。当然,其本质一样。这一点你不赞同也就算了。
2014-03-05 10:42
换空依晨
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2013-9-13
收藏
得分:0 
回复 2楼 rjsp
我没什么不赞同的 新手不懂那么多
2014-03-05 10:44
yuccn
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:何方
等 级:版主
威 望:167
帖 子:6814
专家分:42393
注 册:2010-12-16
收藏
得分:4 
为什么不用strstr?
int index(char a[],char b[])
{
    char *p = strstr(a,b);
    if (p==NULL) {
        return -1;
    }

    return p - a;
}

我行我乐
公众号:逻辑客栈
我的博客:
https://blog.yuccn. net
2014-03-05 12:31
fl8962
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:14
帖 子:539
专家分:2471
注 册:2012-10-17
收藏
得分:4 
回复 4楼 yuccn
char *a="abcabc";
wo xiang wen yi xia, wei shen me you de shi hou wo zhe me xie, bian yi jiu neng tong guo, dan shi you de shi hou jiu bu xing?

想抽苏烟了。
2014-03-07 04:52
快速回复:找子串函数
数据加载中...
 
   



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

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