您的位置:首页 > 其它

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

2013-04-06 14:45 811 查看
#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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐