在字符串中找出连续最长的数字串
2016-05-19 00:46
411 查看
题目描述:
请一个在字符串中找出连续最长的数字串,并把这个串的长度返回;如果存在长度相同的连续数字串,返回最后一个连续数字串;
注意:
数字串只需要是数字组成的就可以,并不要求顺序,比如数字串“1234”的长度就小于数字串“1359055”,如果没有数字,则返回空字符串(“”)而不是NULL!
样例输入:
abcd12345ed125ss123058789
abcd12345ss54761
样例输出:
输出123058789,函数返回值9
输出54761,函数返回值5
接口说明
函数原型:
输入参数:
char* intputstr 输入字符串;
输出参数:
char** pOutputstr: 连续最长的数字串,如果连续最长的数字串的长度为0,应该返回空字符串;如果输入字符串是空,也应该返回空字符串;
返回值:
连续最长的数字串的长度
请一个在字符串中找出连续最长的数字串,并把这个串的长度返回;如果存在长度相同的连续数字串,返回最后一个连续数字串;
注意:
数字串只需要是数字组成的就可以,并不要求顺序,比如数字串“1234”的长度就小于数字串“1359055”,如果没有数字,则返回空字符串(“”)而不是NULL!
样例输入:
abcd12345ed125ss123058789
abcd12345ss54761
样例输出:
输出123058789,函数返回值9
输出54761,函数返回值5
接口说明
函数原型:
unsignedint Continumax(char** pOutputstr, char* intputstr)
输入参数:
char* intputstr 输入字符串;
输出参数:
char** pOutputstr: 连续最长的数字串,如果连续最长的数字串的长度为0,应该返回空字符串;如果输入字符串是空,也应该返回空字符串;
返回值:
连续最长的数字串的长度
#include <stdio.h> #include <string.h> #include <stdlib.h> #define ERR_ARG (-1) #define NO_NUM 1 unsigned int continueMax (char **pOutputStr, char *pInputStr) { unsigned int maxLen = 0, tmpLen = 0; char *pTmp = pInputStr; char *pIndex = NULL; printf ("%s\n", pInputStr); if (NULL == pTmp) { *pOutputStr = ""; return NO_NUM; } while (*pTmp != '\0') { if ((*pTmp >= '0') && (*pTmp <= '9')) { ++tmpLen; } else { if (tmpLen >= maxLen) { maxLen = tmpLen; pIndex = pTmp - tmpLen; } tmpLen = 0; } pTmp++; } *pOutputStr = (char*)malloc((maxLen+1) * sizeof(char)); strncpy (*pOutputStr, pIndex, maxLen); printf ("%d %s\n",maxLen, *pOutputStr); return maxLen; } int main (int argc, char* argv[]) { char *pOutput = NULL; char *pInput = "qwff234567689jjbcdd1456785566ddfdc"; if (argc < 2) { printf ("Usage:\n"); printf (" ./filename <Input String>\n"); return ERR_ARG; } continueMax (&pOutput, argv[1]); free (pOutput); continueMax (&pOutput, pInput); free (pOutput); }
VirtualBox:160518$ gcc continueMax.c -o con VirtualBox:160518$ ./con qr34567sdfg qr34567sdfg 5 34567 qwff234567689jjbcdd1456785566ddfdc 10 1456785566 VirtualBox:160518$ ./con qr34567sdfg12345sdfgh qr34567sdfg12345sdfgh 5 12345 qwff234567689jjbcdd1456785566ddfdc 10 1456785566
相关文章推荐
- 深入分析Linux下如何对C语言进行编程
- C语言编程时常犯十八个错误小结
- 求高人之解答 c语言编程
- 第一个个人项目
- woj1202-找出奇数个数中唯一单个的数
- 【C解析之七】文件进阶
- 【C解析之九】链表初探
- 【C解析之十】链表进阶
- 【算法-排序之四】希尔排序
- 【算法-排序之五】选择排序
- 【每日一C之一】included<>与include""
- 问题一: f=1+2+...+9(累加)
- 问题二: f=1-2+3-4+...+9
- 问题三: f=1-1/2+1/3-1/4+...+1/9
- 问题四: f=1!-2!+3!-4!+...+9!
- 问题五: f=1!-2!+3!-4!+...+n!(n为一定大的数,太大了会溢出)
- 问题六: f=1!+2!+3!+4!+...+n!(n为一定大的数,太大了会溢出)
- 问题七: f=1!+1/2!+1/3!+1/4!+...+1/n!(n为一定大的数,太大了会溢出)
- 问题八: f=1!-1/2!+1/3!-1/4!+...+1/n!(n为一定大的数,太大了会溢出)
- 问题九:编写函数stringcat,实现字符串的连接,程序中需要使用指针形式访问字符串