编写一个函数,有如下函数原型:
#include <stdio.h>
#include <string.h>
int continumax(char*outputstr,char*intputstr)
{
int start=0,end=0,max=0; //start是数字字符的起始位置 end是数字字符的结束位置 max数字字符串字符的个数
int tempstart=0,tempmax=0; //tempstart任意数字字符的起始位置 tempmax任意数字字符串字符的个数
int length=strlen(intputstr);//整个字符串的大小
int cur=0;
for(;cur<length;cur++)//遍历整个字符串
{
char c=intputstr[cur];
if(c>='0'&&c<='9')//当字符是数字时
{
if(tempmax==0)
{
tempstart=cur;//新的数字字符串的起始位置
}
tempmax++;
}
else//当不是数字时
{
if(tempmax>max)
{
start=tempstart;
end=cur;
max=tempmax;
tempmax=0;
}
}
}
for(cur=0;cur<end-start;cur++)
{
outputstr[cur]=intputstr[cur+start];
putchar(outputstr[cur]);
}
putchar('\n');
return max;
}
int main(int argc, const char *argv[])
{
char arr[100];
memset(arr,0,sizeof(arr));
printf("please input a string:");
gets(arr);
char out[100];
memset(out,0,sizeof(out));
int len=continumax(out,arr);
printf("len=%d\n",len);
return 0;
}
函数:int continum(char *intputstr,char *outputstr).
给一个字符串,要求找到里面连续的串,并且串的长度是所有连续串中最长的;结果是返回最长连续串的长度和对应的串;
例如:有字符串“abc123ef456ss123456789”其首地址是intputstr,最长的连续串是 123456789,长度是9,该串由outputstr返回。