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

Posted 小新的博客fjnu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了找出最长的数字串:方法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");
}

 

以上是关于找出最长的数字串:方法2的主要内容,如果未能解决你的问题,请参考以下文章

字符串中找出连续最长的数字串(正则表达式)

华为机试真题 C++ 实现字符串中找出连续最长的数字串

[华为]在字符串中找出连续最长的数字串

华为OD机试 - 找出重复代码(Python)

华为机试HJ92:在字符串中找出连续最长的数字串

华为机试HJ92:在字符串中找出连续最长的数字串