0807--C 字符串处理
写个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);}
?
?