/*
问题描述:从一个字符串中搜索出指定类型的最长的字符串

*/

#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;
}