| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 546 人关注过本帖
标题:字符串题
只看楼主 加入收藏
小笑孩
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2006-11-24
收藏
 问题点数:0 回复次数:5 
字符串题

题目:编写一个程序,判断一个字符串是否是另一个字符串的子串,若是,返回子串第一次在主串中出现的位置,否则返回-1;



#include<stdio.h>
int acm(char a[30],char b[30])
{
int i=1,j=0;
for(j=0;j<30;j++) 我知道此处不对,我不知道此处怎样编才能实现原题的功能。
if(b[0]==a[j])
return j+1;
for(j=0;j<30;j++)
if(b[i]==a[j])
i++;
for(j=0;j<30;j++)
if(b[i]!=a[j]||b[0]!=a[j])
return -1;
}

void main()
{
char iteam[30],itean[30];
int asd;
printf("input some words:\n");
scanf("%s",&iteam);
printf("input some words again:\n");
scanf("%s",&itean);
asd=acm(iteam,itean);
printf("%d",asd);

}

搜索更多相关主题的帖子: 字符 
2006-12-04 23:11
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
以下是引用小笑孩在2006-12-4 23:11:30的发言:

题目:编写一个程序,判断一个字符串是否是另一个字符串的子串,若是,返回子串第一次在主串中出现的位置,否则返回-1;



#include<stdio.h>
int acm(char a[],char b[])
{
int i=1,j=0;
for(j=0;j<strlen(a);j++) 我知道此处不对,我不知道此处怎样编才能实现原题的功能。
if(b[0]==a[j])
return j+1;
for(j=0;j<strlen(b);j++)
if(b[i]==a[j])
i++;
for(j=0;j<strlen(a);j++)
if(b[i]!=a[j]||b[0]!=a[j])
return -1;
}

void main()
{
char iteam[30],itean[30];
int asd;
printf("input some words:\n");
scanf("%s",&iteam);
printf("input some words again:\n");
scanf("%s",&itean);
asd=acm(iteam,itean);
printf("%d",asd);

}

但你的算法还是不对.

给你个参考函数.

/*朴素模式匹配*/
int indx(seqstring p,seqstring t)
{
int j,i=0,succ=0;
while((i<=t.size-p.size+1)&&(!succ))
{
j=0;
succ=1;
while((j<=p.size-1)&&succ)
if(p.a[j]==t.a[i+j])
{
j++;
}
else
{
succ=0;
}
++i;
}
if(succ) return i-1;
else return -1;
}


倚天照海花无数,流水高山心自知。
2006-12-04 23:23
小笑孩
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2006-11-24
收藏
得分:0 
我用的是MSC.还是看不懂,有没有简单的易懂的算法,谢谢!
2006-12-04 23:38
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 

这个已经是最简单的模式匹配算法了.

看看朴素模式匹配的思想,再根据这个程序理解一下,当然这个程序我引入succ是为了提前结束提高效率.


倚天照海花无数,流水高山心自知。
2006-12-04 23:40
w362034710
Rank: 1
等 级:新手上路
帖 子:169
专家分:0
注 册:2006-12-2
收藏
得分:0 
如果我没记错,,KMP才是最有效的匹配算法,,不过我没弄懂就是
2006-12-05 10:06
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
以下是引用w362034710在2006-12-5 10:06:22的发言:
如果我没记错,,KMP才是最有效的匹配算法,,不过我没弄懂就是

说的不错.


倚天照海花无数,流水高山心自知。
2006-12-05 13:22
快速回复:字符串题
数据加载中...
 
   



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

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