Linux后台服务器编程。
分类: C/C++
2014-09-23 00:05:07
问题描述:从一个字符串中搜索出指定类型的最长的字符串
*/
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
#include <ctype.h>
using namespace std;
struct Snode
{
int index;
int len;
};
bool MyComparator(Snode a, Snode b )
{
return (a.len < b.len);
}
int main(int argc, char* argv[])
{
char a[]="faj23jaiu44545kajfkj343krje34j3krja43";
int i = 0;
int temp;
int _len = sizeof(a)/sizeof(a[0]) ;
Snode _node;
vector<Snode> v;

while (i < _len)
{
while (i < _len)
{
if (isdigit(a[i]))
{
temp = i;
_node.index=i;
break;
}
i++;
}
while (i < _len)
{
if (! isdigit(a[i]))
{
_node.len = i - temp;
break;
}
i++;
}
v.push_back(_node);
}

vector<Snode>::iterator it;
it = max_element(v.begin(),v.end(),MyComparator);
int ni,nj;
ni = (*it).index;
nj = (*it).len+ni;
cout << a <<endl;
for (int k = ni;k < nj;k++)
{
cout <<a[k] ;
}
cout << endl;
return 0;
}