截取两个特定字符串之间的内容解决思路
截取两个特定字符串之间的内容
比如
“........select distinct guiydh from bgydl a,pdsdl b where faredm = :FRDM_BGYDL and jiaoym='7301'..........;”
这个字符串,要截取"from"和"where"这两个字符串之间的字符串,如何做?
最终得到"bgydl a,pdsdl b"这个字符串。
------解决思路----------------------
------解决思路----------------------
C++的 用string类型存放整串
C的话就用指针遍历字符串,记住找到“from” Pos1 和“where”的位置Pos2
memcpy( );size为Pos2 - Pos1
------解决思路----------------------
使用strstr, 参考一下
------解决思路----------------------
用strstr进行子串的查找。看看strstr的使用说明,不难
------解决思路----------------------
给你说下strstr这个函数的用法
函数原型: char *strstr( char *str, char * substr );
函数的作用也就是,返回在str里搜索 substr 第一次出现的位置, 并返回该位置。。
举个例子吧。
那么输出结果就是 :
csdn.net/
比如
“........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/