C++ 提取字符串中特定字符串

给一段字符串比如s= I am <name> I want <object> I am <name>
做一个extract(string s)函数 从s中找到用<>括起来的东西,返回一个字符串数组{"<name>,<object>} 。重复的只要一个。顺便要把<name><object>保存到一个全局变量二维数组中。就是a[ ][ ]变成a[0][0]=<name>, a[1][0]=<object>

第1个回答  2012-09-16
#include<stdio.h>
#include<iostream>
using namespace std;

char a[2][10];
void extract(string s);
main()
{
string str="I am <good> I want <object>";
extract(str);
cout<<a[0];
cout<<a[1];
}

void extract(string s)
{
int yixiao,yida,erxiao,erda,i;//yixiao为第一个小于号<
yixiao=s.find('<');
yida=s.find('>');
erxiao=s.find_last_of('<');
erda=s.find_last_of('>');
for(i=0;i<yida-yixiao-1;i++)
a[0][i]=s.at(yixiao+i+1);
a[0][i]='\n';
for(i=0;i<erda-erxiao-1;i++)
a[1][i]=s.at(erxiao+i+1);
a[1][i]='\n';
}本回答被提问者采纳
第2个回答  2012-09-15
使用sscanf函数
第3个回答  2012-09-15
kmp

VC++6.0怎样在一行字符串中获取特定两个字符中间的字符串
在VC++中字符串分为ASCII字符串,也就是标准C中的(ASCII)字符串和宽字节字符串,也就是C++中引入的wchar_t类型。获取字符串也可以分为为这两种情况。对于ASCII字符串:标准C中:include <string.h> char *strchr( const char *str, int ch );功能:函数返回一个指向str 中ch 首次出现的位置,...

c++怎么提取字符串的一部分
find(string strSub, npos);find_last_of(string strSub, npos);其中strSub是需要寻找的子字符串,npos为查找起始位置。找到返回子字符串首次出现的位置,否则返回-1;注:(1)find_last_of的npos为从末尾开始寻找的位置。(2)下文中用到的strsub(npos,size)函数,其中npos为开始位置,size为截取大...

如何使用C++提取出一个文件中的特定字符串里面的数字 数据例子如下_百度...
include<iostream>#include<fstream>#include<cstdio>#include<string>using namespace std;int main(){ ifstream in("e:\\\\test.txt"); if(!in) exit(-1); char str[50]; string sstr; while(!in.eof()) { memset(str,0,sizeof(str)); in.getline(str,50,'\\n'); char *ps...

如何在一个字符数组中查找一个指定的字符?(c或c++)
n应该是代表循环的次数上限,这里应该是被查找的字符串(字符数组t[50])中的字符个数,所以是50 j是待查找的字符在被查找字符串中的位置,所以是j [3-1]:50 [3-2]:j

C++ 截取字符串,从0开始截取到我指定的某个字符串位置.
提取该字符串左边nCount个字符的子字符串,并返回一个包含这个子字符串的拷贝的CString对象。CString str1 = _T("jizhuomi");CString str2 = str1.Left(3); \/\/ str2为"jiz"你的问题就是用Find(),查找","号的索引x,然后Left(x)截取","号左边的x个字符,具体你自己看看,c的忘了好多 ...

c++ 中怎样去掉字符串中的某个字符?
貌似String类中有类似的方法剔除某字符串,不过我很久不用C++了忘记了=。= 给你些个算法吧:\/\/原来存储的字符串 String _strBuff="abceccecdf";\/\/处理后保存的字符串 String _str="";for(int i=0;i<_strBuff.lengh;++i){ if(_strBuff[i]=='c'){ } else { _str.add(_strBuff[i])...

C++ MFC中 截取特定字符串
std;int main(void){ string stra("01 00 00 88 02 00 00 88 03 00 00 88 04 00 00 88"),strb;for(int ln=stra.length(),i=0;i<ln;i++)if(stra[i]!='8' || stra[i+1]!='8')strb+=stra[i];else{ strb+=',';i++;} cout << strb << endl;return 0;} ...

C++中假设有一个string里有几个数字,怎么把特定数字提取出来
用string的迭代器来遍历这个字符串中的每个字符,如果是指定的数字那么就取出来,如果不是把迭代器++ 指向下一个。

C++怎么从一个字符串中读取一个字符?
可以用 字符串.find(该字符)返回的是个地址然后再取值 比如 string str = "abcd";char * p = str.find(a);p 就是a 也可直接str[0]这个就是a

C++ 根据特殊字符串截取字符串
用CString类的find成员函数找到\/n的位置,然后再用CString类的Left等成员函数截取就可以了

相似回答