| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 967 人关注过本帖
标题:这是一个关于字符串匹配的问题,但是有问题,求教 谢谢
只看楼主 加入收藏
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
收藏
得分:0 
哦,这样啊,那是要两个循环,代码如下:
int stringmatch(char ch1[],char ch2[])
{
    int i,j,l;
    for(l=0;ch2[l]!=0;l++);//获取被比较字符串长度
    for(i=0;ch1[i]!=0;i++)
    {
        for(j=0;ch1[i+j]==ch2[j]&&ch2[j]!=0;j++);
        if(j==l)return 1;
    }
    return 0;
}

能编个毛线衣吗?
2015-04-06 23:52
yangfrancis
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:141
帖 子:1510
专家分:7661
注 册:2014-5-19
收藏
得分:0 
int stringmatch(char ch1[],char ch2[])
{
    if(strlen(ch1)<strlen(ch2))
        return 0;
    int idx_1,idx_2,sum;
    for(idx_1=0;idx_1<strlen(ch1)-strlen(ch2)+1;idx_1++)
    {
        sum=0;
        for(idx_2=0;idx_2<strlen(ch2);idx_2++)
        {
            if(ch1[idx_1+idx_2]==ch2[idx_2])
                sum++;
        }
        if(sum==strlen(ch2))
            return idx_1+1;
    }
    return 0;
}
可以这样写
2015-04-07 13:03
一条沙丁鱼
Rank: 1
等 级:新手上路
威 望:1
帖 子:44
专家分:7
注 册:2015-4-5
收藏
得分:0 
回复 11楼 wmf2014
大神,我照你改的调试运行了一下,第一次的时候我输入的是wearetheyouth,和ear,显示匹配成功,但是之后换别的字符串进行运行都显示失败,我上传了照片,麻烦了再帮忙看看,谢谢!
图片附件: 游客没有浏览图片的权限,请 登录注册
图片附件: 游客没有浏览图片的权限,请 登录注册
图片附件: 游客没有浏览图片的权限,请 登录注册
2015-04-07 18:55
一条沙丁鱼
Rank: 1
等 级:新手上路
威 望:1
帖 子:44
专家分:7
注 册:2015-4-5
收藏
得分:0 
回复 11楼 wmf2014
可以了,谢谢大神,没有问题了
2015-04-07 20:31
一条沙丁鱼
Rank: 1
等 级:新手上路
威 望:1
帖 子:44
专家分:7
注 册:2015-4-5
收藏
得分:0 
回复 12楼 yangfrancis
恩恩,后期调试的时候发现了,需要确定第二个字符串的长度问题,之前没有想到用strlen这个函数,多谢!
2015-04-07 21:18
快速回复:这是一个关于字符串匹配的问题,但是有问题,求教 谢谢
数据加载中...
 
   



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

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