写个c程序,返回字符串中最长数字字符串的长度和地址,不能用标准库函数
int maxContinuNum(const char *inputstr,char * outputstr)
编写一段程序实现该函数,实现返回一个以“\0”结束的字符串中最长的数字串的长度,并把该数字子串的首地址赋给outputstr。不能使用任何
库函数或已经存在的函数,如strlen。
例如:在字符串“abc123abcdef12345abcdefgh123456789”中,把该字符串的首地址赋给inputstr,返回9,outputstr指向字符串“123456789”
的首地址。
#include <stdio.h> #include <stdlib.h> int maxContinuNum(const char *inputstr,char * outputstr){ int max_len=0; char *q=outputstr; const char * p=inputstr; const char * maxp; const char * startp; while(*p!='\0'){ int len=0; if(*p>='1' && *p<='9'){ startp=p; while(*p>='1' && *p<='9'){ len++; p++; } } if(len>max_len){ max_len=len; maxp=startp; } p++; } for(int i=0;i<max_len;i++){ *q=*maxp; printf("%c",*q); q++; maxp++; } printf("\n"); return max_len; } void main(){ char * inputstr="abc123abcdef12345abcdefgh1234567891"; char * p=inputstr; int len=0; while(*p!='\0'){ //求输入字符串的长度 len++; p++; } char * outputstr=(char *)malloc(len); //为输出字符串申请空间 int ret=maxContinuNum(inputstr,outputstr); printf("ret=%d\n",ret); }