求一个字符串s的最大连续递增数字子串


#include <stdio.h>
#include <string.h>
char* getSubStr(char *str,char *result){
char *p = str;//引用字符串
char *start = NULL;//字串开始位置的字符指针
//sublen字串的长度 count字符出现的次数,因为最后不满足条件的那个数也要计算在内,所以初始化为1
int sublen=0,count=1;
while(*p!='\0'){
printf("p=%p *p= %c\n",p,*p);
if(isdigit(*p)
&& isdigit(*(p+1))
&& (*(p+1) = *p + 1)){
count ++;
printf("ch = %c count=%d\n",*p,count);
}else{
if(count>sublen){
sublen = count;
start = p-(sublen-1);//p是最后一个递增数字的指针位置,通过字符长度,计算字串的开始指针位置。
strncpy(result,start,sublen);//复制满足条件的字串到新字符数组中。
printf(">>> p=%p start=%p sublen=%d result=%s\n",p,start,sublen,result);
count = 1;//计数器置为1
}
}

p++;
}
return result;//最后返回最大的递增数字字串。
}

int main()
{//比如 "asdf1234aslkd123ll23" 结果是1234
char str[30];
char result[30]={'\0'};
char blank[30]={'\0'};
gets(str);
getSubStr(str,result);
return 0;
}


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2020 ITdaan.com