鱼C论坛

 找回密码
 立即注册
查看: 4233|回复: 2

各位大神,小生问下如何实现实现找出串S中自一位置起,所有和模式串T相匹配的串

[复制链接]
发表于 2012-12-10 22:23:53 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
这是查找一次的:
void Concat_Sq( char S1[ ], char S2[ ], char T[ ]) {
       // 用T返回由S1和S2联接而成的新串
       j=0;  k=0;
       while ( S1[j] != '\0' )  T[k++] = S1[j++];  //复制串S1
       j = 0;
       while ( S2[j] != '\0' )  T[k++] = S2[j++];  //接着复制串S2
       T[k] = '\0';                                //置结果串T的结束标志
} // Concat

小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-12-11 08:48:38 | 显示全部楼层
我刚刚帮你实现了一下,使用的strstr()函数实现的,代码如下,如果有不懂得可以找我交流。
  1. #include "stdio.h"
  2. #include "string.h"

  3. void main()
  4. {
  5.         char s[] = "you are you you test? you....";
  6.         char t[] = "you";
  7.         char *p = s;
  8.         char *ret = NULL; //strstr函数返回的目标指针
  9.         int result;  //返回目标位置下标值
  10.         while ((ret=strstr(p,t)))
  11.         {
  12.                 result = ret-s;  //目标指针-起始指针=当前下标值
  13.                 printf("结果是:%d \n",result);
  14.                 p = ret+strlen(t);  //继续匹配字符串后边的字符
  15.         }
  16. }
复制代码
还有如果strstr函数不了解的话,可以查查MSDN,那上面讲的很详细,还有实例。
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-12-11 16:23:17 | 显示全部楼层

又学到了一点
小甲鱼最新课程 -> https://ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-11-16 20:32

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表