/* 不用任何库函数,系统函数, 完成函数 int maxContinuNum(const char* inputstr,char *outputstr); 返回给定字符串中最长连续数字串,让outputstr指向该串,然后值是其长度。 例如sss12345ss1245sfdf123456789返回,9,outputstr指向123456789。 */ #include <iostream> using namespace std; int maxContunuNum(const char* inputstr,char *outputstr) { char *p=(char *)inputstr; int max=0,num=0; bool set=false; char *start; while (*p!='\0') { if((*p>='0')&&(*p<='9')) { if(set==false) start=p;//连续数字中只标记第一个数字的地址 num++;//记录数出现的次数 set=true; } else { if(num>max)//如果前面的一串数字是最长的 { outputstr=start;//则把地址赋给outputstr max=num;//并记下最长的数字串的个数 } set=false;//为下一轮连续数字做准备 num=0; } p++; } if(num>max) {//防止最后一个字符是数字导致没有判断num>max outputstr=start;max=num; } cout<<"最长的数字串为:"<<endl; for(int i=0;i<max;i++)//输出最长的数字串 cout<<*(outputstr+i); cout<<endl; return max; } int main() { char *p="sss12345ss1234sdfaf123456789asfdfs12345678901231a"; char out[100]; cout<<"最长连续数字个数为"<<maxContunuNum(p,out)<<endl; return 0; }
时间: 2024-10-26 15:25:45