
/**//*
問題描述:從一個字符串中搜索出指定類型的最長的字符串
*/
#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;
}


