題目:函數
寫一個函數,它的原形是 int continumax(char *outputstr,char *intputstr)code
功能:內存
在字符串中找出連續最長的數字串,並把這個串的長度返回,字符串
並把這個最長數字串付給其中一個函數參數 outputstr 所指內存。input
例如:"abcd12345ed125ss123456789" 的首地址傳給 intputstr 後,函數將返回 9,io
outputstr 所指的值爲 123456789編譯
題目也比較簡單,有一點須要注意class
代碼實現(GCC編譯經過):di
#include "stdio.h" #include "stdlib.h" int continumax(char * outputstr,char * inputstr); int main(void) { char *in = "abcd12345ed125dd123456789"; char *out = (char *)malloc(sizeof(char)*100); int i = continumax(out,in); printf("%d\n",i); printf("%s\n",out); return 0; } int continumax(char * outputstr, char * inputstr) { int len,max,i; char *p; len = max = 0; //若寫成while(inputstr != '\0'),當字符串結尾出現最長數字串則沒法處理 while(1) { if(*inputstr >= '0' && *inputstr <= '9') { len++; } else { if(len >max) { max = len; p = inputstr - len; } len = 0; } if(*inputstr++ == 0) break; } for(i = 0;i<max;i++) *outputstr++ = *p ++; *outputstr = '\0'; return max; }