编译环境:Code::Blocks 10.05
/*实现一个函数的完整代码。
int maxContinuNum(const char*inputstr.char*outputstr) 功能:
在以‘\0’结尾的字符串中找出连续最长的数字串,并把这个串的长度返回,
并把这个最长数字串付给其中一个函数参数outputstr所指内存。不能用strlen之类的库函数。*/
#include<stdio.h>
int maxContinuNum(char* inputstr,char* outputstr);
int main(void)
{
char in[100];
char out[100];
int i;
puts("Enter a string contains numbers:");
int count=0;
while(gets(in)!=NULL && in[0]!='\0')
{
count = maxContinuNum(in,out);
printf("Numbers in the string :%s\nContains %d numbers\n",out,count);
//清空一次 否则在重复输入时存在错误
for( i=0;i<100;i++)
out[i]='\0';
puts("Enter a string contains numbers:(enpty line to quit):");
}
puts("Bye!");
return 0;
}
int maxContinuNum(char* inputstr,char* outputstr)
{
int place;
int i=0;
int len=0;
int maxlen=0;
while(inputstr[i])
{
while((inputstr[i]>='0' && inputstr[i]<='9') && inputstr[i]!='\0' )
{
len++;
i++;
}
if(maxlen<len)
{
maxlen=len;
place=i-len;
}
len=0;
i++;
}
int j=0;
for( i=place;i<maxlen+place;)
{
outputstr[j++]=inputstr[i++];
}
outputstr[j]='\0';
return maxlen;
}