C语言_找出字符串中最长的数字串
编写函数,其原型为:int cmax(char *outputstr,char *inputstr);
在输入字符串intputstr中找出连续最长的数字串,把这个串的长度返回,并把最长的数字串交付给函数参数outputstr所指内存。
直接上代码,通俗易懂:
#include<stdio.h>
int cmax(char *outputstr,char *inputstr)
{
char *p=inputstr;
while(*(p++)!=0);
*(p-1)='#';
*p='\0'; //以上代码就是向字符串末尾添加一个非数字字符,不影响结果,便于代码的统一管理
p=inputstr;
int i=0,j=0,max=0,k;
while(*p!=0)
{
//前一个字符不是数字,当前字符是数字
if((*p>='0'&&*p<='9') && (*(p-1)<'0'||*(p-1)>'9'))
i=j;
//前一个字符是数字,当前字符不是数字
else if((*p<'0'||*p>'9') && (*(p-1)>='0'&&*(p-1)<='9'))
{
if(j-i>=max)
{
max=j-i;
for(k=0;k<max;k++)
outputstr[k]=*(inputstr+i+k);
outputstr[k]='\0';
}
}
j++;
p++;
}
return max;
}
int main()
{
char s1[20],s2[]="abcd12345ed125ss123058789";
int len=cmax(s1,s2);
printf("最大长度:%d\n",len);
printf("字符串为:%s\n",s1);
return 0;
}