栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > C++面试题库

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

求最大连续递增数字串(如“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]=’’;
    return iMax;     // 返回连续数字的最大长度
}
int main(int argc, char* argv[]) {
    char strSource[]=”ads3sl456789DF3456ld345AA”, char strResult[sizeof(strSource)];
printf(“Len=%d, strResult=%s nstrSource=%sn”,
GetSubString(strSource, strResult), strResult, strSource);
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/265506.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号