找出最长的数字串:方法2

把字符串里的各个数字串的长度和当前最大的数字串比较,最终得到最大的数字串为哪个数字串,记下它在字符串里的位置p_

dest,和它的长度cnt

输出时,从地址p_dest往后输出cnt个字符

#include <iostream>
using namespace std;


//找到字符串中最长的数字串
char*  find_max_num_string(char *p_src, char *p_dest,int& max) 
                        //原字符串、最长数字串的首地址、数字串的长度
{
    
    int cnt = 0;   //当前所记录的数字串的长度
    
    if (p_src == NULL)
        return 0; 
    

    while (*p_src != '\0')
    {
        if (*p_src >= '0'&&*p_src <= '9')
        {
            cnt++;  //字符为数字字符时,计数器加;
            
            if (cnt > max) //大于之前记录的最大的数字串
            {
                p_dest = p_src - cnt + 1; // 刷新p_dest
                max = cnt;//刷新max
            }
        }
        else cnt = 0;//否则遇到的是非数字字符 ,计数器=0
        p_src++;
    }
    return p_dest;

}
int main()
{
    int cnt = 0;
    char src[50] = { '\0' }; 
    char *p_dest = src;
    cout << "输入字符串";
    cin.getline(src, 50);
    
    
    p_dest=find_max_num_string(src, p_dest,cnt);
    cout << cnt << endl;
    
    for (int i=0;i < cnt; i++)
    {
        cout << *(p_dest++);
    }
    system("pause");
}

 

posted @ 2018-04-17 20:06  新新苦苦的学习  阅读(298)  评论(0编辑  收藏  举报