Chinaunix首页 | 论坛 | 博客
  • 博客访问: 912534
  • 博文数量: 299
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 2493
  • 用 户 组: 普通用户
  • 注册时间: 2014-03-21 10:07
个人简介

Linux后台服务器编程。

文章分类

全部博文(299)

文章存档

2015年(2)

2014年(297)

分类: 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;
}
阅读(1469) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~