华为练习3 在字符串中找出连续最长的数字串
2014-04-05 00:25
302 查看
#include <stdlib.h> #include "oj.h" /* 功能:在字符串中找出连续最长的数字串,并把这个串的长度返回 函数原型: unsigned int Continumax(char** pOutputstr, char* intputstr) 输入参数: char* intputstr 输入字符串 输出参数: char** pOutputstr: 连续最长的数字串,如果连续最长的数字串的长度为0,应该返回空字符串 pOutputstr 指向的内存应该在函数内用malloc函数申请,由调用处负责释放 返回值: 连续最长的数字串的长度 */ unsigned int Continumax(char** pOutputstr, char* intputstr) { if(intputstr==0||*intputstr=='\0'){//当字符为空时 char* p=(char*)malloc(sizeof(char)); *p='\0'; *pOutputstr=p; return 0; } int a=0;//现在字符串长度 int b=0;//最长数字串长度 int sitea=0;//最长数字串开始处 int siteb=0; bool isD=false;//判断是否之前指针指向数字 int i=0; for(;i<1000;){//最后一个字符为'\0‘ if(*intputstr>='0'&&*intputstr<='9'){ if(!isD)sitea=i; a++; isD=true; }else{ if(isD){ if(a>=b){ siteb=sitea; b=a; } a=0; isD=false; } } if(*intputstr=='\0')break; i++;//总长度没有末尾,且指针不指向末尾 intputstr++; } intputstr-=(i-siteb); char* p=(char*)malloc(sizeof(char)*++b); for(int j=1;j<b;j++){ *p++=*intputstr++; } *p='\0'; p-=--b; *pOutputstr=p; return b; }
相关文章推荐
- [华为]在字符串中找出连续最长的数字串
- 华为练习题 在字符串中找出连续最长的数字串,并把这个串的长度返回
- 华为2018秋招编程题1:在字符串中找出连续最长的数字串
- 【练习】写一个函数,它的原形是int continumax(char *outputstr,char *intputstr)功能:在字符串中找出连续最长的数字串,并把这个串的长度返回,
- 华为oj:在字符串中找出连续最长的数字串
- 在字符串中找出连续最长的数字串 ——来自华为OJ平台测试基础篇
- 华为OJ——在字符串中找出连续最长的数字串
- 华为机试在线训练-牛客网(38)在字符串中找出连续最长的数字串
- 2014华为机试-在字符串中找出连续最长的数字串
- 华为OJ:在字符串中找出连续最长的数字串
- 华为OJ—— 在字符串中找出连续最长的数字串
- 华为oj 在字符串中找出连续最长的数字串
- 华为OJ平台——在字符串中找出连续最长的数字串
- 华为oj 在字符串中找出连续最长的数字串
- 【华为OJ】在字符串中找出连续最长的数字串
- 华为OJ(在字符串中找出连续最长的数字串)
- 华为机试题—在字符串中找出连续最长的数字串 c++
- 华为OJ 在字符串中找出连续最长的数字串
- [华为机试练习题]43.在字符串中找出连续最长的数字串
- 华为oj初级 在字符串中找出连续最长的数字串