| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 511 人关注过本帖
标题:快来啊,一个字符串匹配的问题
只看楼主 加入收藏
que1
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2006-5-12
收藏
 问题点数:0 回复次数:3 
快来啊,一个字符串匹配的问题
题目:
请编写一个函数int find(char s[],chart[]),该函数在字符串s中查找字符串t,如果找到,则返回字符串t在字符串s中的位置(整数值);否则返回-1.注意:用数组方式及两重循环来实现该函数.
??#include
??int find(char s[],char t[]);
??const int MAXLINE =256;
??int main()
??{  char source[MAXLINE],rarget[MAXLINE];
??  cout <<"Please input a string for searching:\n";
??  cin.getline(source,MAXLINE);
??  cout<<"Please input a string you want to find:\n";
??  cin.getline(target,MAXLINE);
??  int intpos = find(source,target);
??  if(intpos>=0
??    cout<<"Finding it.The target string is at index"
??      <<INTPOS<<"OF string\n?;
??  else
??    cout<<"Not finding it.\n";
??  return 0;
??  }
??int find(char s[],char t[])
??{
??}




问题:
数据结构字符串的模式匹配方法中有定义的结构体的S.len表示两字符串的长度,
但这里只有两数组,怎么实现循环的退出条件呢?


题目:
请编写一个函数int find(char s[],chart[]),该函数在字符串s中查找字符串t,如果找到,则返回字符串t在字符串s中的位置(整数值);否则返回-1.注意:用数组方式及两重循环来实现该函数.
??#include
??int find(char s[],char t[]);
??const int MAXLINE =256;
??int main()
??{  char source[MAXLINE],rarget[MAXLINE];
??  cout <<"Please input a string for searching:\n";
??  cin.getline(source,MAXLINE);
??  cout<<"Please input a string you want to find:\n";
??  cin.getline(target,MAXLINE);
??  int intpos = find(source,target);
??  if(intpos>=0
??    cout<<"Finding it.The target string is at index"
??      <<INTPOS<<"OF string\n?;
??  else
??    cout<<"Not finding it.\n";
??  return 0;
??  }
??int find(char s[],char t[])
??{
??}




问题:
数据结构字符串的模式匹配方法中有定义的结构体的S.len表示两字符串的长度,
但这里只有两数组,怎么实现循环的退出条件呢?

各位高手帮帮忙吧
搜索更多相关主题的帖子: 字符 
2006-06-18 06:24
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 
strlen(char *)长度

[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-06-18 08:39
stylev
Rank: 1
等 级:新手上路
威 望:1
帖 子:136
专家分:0
注 册:2006-5-30
收藏
得分:0 
int find(char s[],char t[])
{
int i;
int j;

int sLength = strlen(s);
int tLength = strlen(t);

for ( i = 0; i < sLength; i++ )
{
for ( j = 0; j < tLength; j++ )
{
if ( *(s+i+j) != *(t+j) )
{
break;
}
}
if ( j == tLength )
return 1; //mark
}
return -1;
}

//如果找到,则返回字符串t在字符串s中的位置(整数值)
//你说的这句这样返回没有意义.而我直接给你返回了1

E-mail/MSN: stylev@
2006-06-18 13:54
peray
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2006-5-7
收藏
得分:0 

return i;

2006-06-18 15:49
快速回复:快来啊,一个字符串匹配的问题
数据加载中...
 
   



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

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