zoukankan      html  css  js  c++  java
  • 字符串中找出最长的数字串 【微软面试100题 第二十五题】

    题目要求:

      写一个函数,它的原型是int ContinueMax(char *outputStr,char *inputStr);

      功能:在字符串中找出连续最长的数字串,并把这个串的长度返回,并把这个最长数字串赋给其中一个函数参数outputStr所指内存。

      例如:"abcd12345ed125ss123456789"的首地址传给inputStr后,函数将返回9,outputStr所指的值为123456789.

      参考链接:http://blog.csdn.net/v_july_v/article/details/6870251

    题目分析:

      用max记录最长的数字串,pStart记录该数字串的第一个字符地址;从inputStr的第一个字符开始到结束不断更新max和pStart.

    代码实现:

    #include <iostream>
    
    using namespace std;
    
    int ContinueMax(char *outputStr, char *inputStr);
    
    int main(void)
    {
        char *inputStr = "abcd12345ed125ss123456789";
        char outputStr[100] ={0};
    
        int len = ContinueMax(outputStr,inputStr);
        cout << "最长数字串为:" << outputStr << "  长度为:" << len << endl;
        return 0;
    }
    int ContinueMax(char *outputStr, char *inputStr) 
    {
        int len = 0;
        char * pStart = NULL;
        int max = 0;
    
        if(inputStr==NULL || outputStr==NULL)
            return 0;
        while(1) 
        {
            if(*inputStr >= '0' && *inputStr <='9') 
            {
                len ++;
            } 
            else 
            {
                if(len > max) 
                {
                    pStart = inputStr-len;
                    max = len;
                }
                len = 0;
            }
            if(*inputStr++=='') 
                break;
        }
        for(int i=0; i<max; i++)
            *outputStr++ = *pStart++;
        *outputStr = '';
        return max;
    }
    View Code
  • 相关阅读:
    【转】使用python编写网络通信程序
    【转】linux下的单线程
    【转】使用python进行多线程编程
    mysql数据库安装、启动及权限设置
    【转】Linux下的多线程编程背景知识
    开关电源使用
    ubi实际使用
    xshell快捷键
    Nandflash镜像尾部不应填充0xFF
    CRC校验
  • 原文地址:https://www.cnblogs.com/tractorman/p/4059416.html
Copyright © 2011-2022 走看看