截取两个特定字符串之间的内容解决思路

截取两个特定字符串之间的内容
比如
“........select distinct guiydh from bgydl a,pdsdl b  where faredm = :FRDM_BGYDL and jiaoym='7301'..........;”
这个字符串,要截取"from"和"where"这两个字符串之间的字符串,如何做?
最终得到"bgydl a,pdsdl b"这个字符串。

------解决思路----------------------
#include <stdio.h>
#include <string.h>

int main()
{
  char *src = "........select distinct guiydh from bgydl a,pdsdl b  where faredm = :FRDM_BGYDL and jiaoym='7301'..........;";
  char dest[100] = {0};
  char *p1, *p2;
  p1 = strstr(src, "from ");
  p2 = strstr(src, " where");
  if (p1 == NULL 
------解决思路----------------------
 p2 == NULL 
------解决思路----------------------
 p1 > p2) {
    printf("Not found\n");
  } else {
    p1 += strlen("from ");
    memcpy(dest, p1, p2 - p1);
    printf("%s\n", dest);
  }
  return 0;
}

------解决思路----------------------
C++的 用string类型存放整串

string str = “........select distinct guiydh from bgydl a,pdsdl b  where faredm = :FRDM_BGYDL and jiaoym='7301'..........;”;
string::size_type Pos_From = str.find( "from",0 );
string::size_type Pos_Where = str.find( "where",0 );
string strDis = str.substr( Pos_From,Pos_Where );

C的话就用指针遍历字符串,记住找到“from” Pos1 和“where”的位置Pos2
memcpy( );size为Pos2 - Pos1
------解决思路----------------------
使用strstr, 参考一下
------解决思路----------------------
用strstr进行子串的查找。看看strstr的使用说明,不难
------解决思路----------------------
给你说下strstr这个函数的用法
函数原型:  char *strstr( char *str, char * substr );
  函数的作用也就是,返回在str里搜索 substr 第一次出现的位置, 并返回该位置。。
 举个例子吧。

#include<stdio.h>
 #include<string.h> 
int main()
{
 char *str = "bbs.csdn.net/"; 
 char *substr = "csdn"; 
char *s = strstr(str, substr); 
printf("%s\n", s); return 0; }

那么输出结果就是 :
csdn.net/