首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

求最大连市续递增数字串(如“ads3sl456789DF3456ld345AA”中的“456789”)

2012-09-03 
求最大连续递增数字串(如“ads3sl456789DF3456ld345AA”中的“456789”)int GetSubString(char *strSource, ch

求最大连续递增数字串(如“ads3sl456789DF3456ld345AA”中的“456789”)
int GetSubString(char *strSource, char *strResult) {
??? int iTmp=0, iHead=0, iMax=0;
??? for(int Index=0, iLen=0; strSource[Index]; Index++) {
??????? if(strSource[Index] >= ‘0′ && strSource[Index] <= ‘9′ &&
strSource[Index-1] > ‘0′ && strSource[Index] == strSource[Index-1]+1) {
??????????? iLen++;?????????????????????? // 连续数字的长度增1
??????? } else {????????????????????????? // 出现字符或不连续数字
??????????? if(iLen > iMax) {
??????????? iMax = iLen; ?iHead = iTmp;
??????????? }???????
?? ???? // 该字符是数字,但数字不连续
??????????? if(strSource[Index] >= ‘0′ && strSource[Index] <= ‘9′) {
??????????????? iTmp = Index;
iLen = 1;
??????????? }
??????? }???
??? }
??? for(iTmp=0 ; iTmp < iMax; iTmp++)?// 将原字符串中最长的连续数字串赋值给结果串
??????? strResult[iTmp] = strSource[iHead++];
??? strResult[iTmp]='\0′;
??? return iMax;?????// 返回连续数字的最大长度
}
int main(int argc, char* argv[]) {
??? char strSource[]=”ads3sl456789DF3456ld345AA”, char strResult[sizeof(strSource)];
printf(”Len=%d, strResult=%s \nstrSource=%s\n”,
GetSubString(strSource, strResult), strResult, strSource);
}

热点排行