例如:源串为"ads3s1456789DF3456ld345AA"
输出为"456789"
#include <iostream>
using namespace std;
char strSource[]="123456789ad0123456789s3sl456789DF3456ld345AA";
const int size = sizeof strSource / sizeof *strSource;
char strResult[sizeof(strSource)];
int getSubString(char (&array)[size], char *dest);
int main(int argc, char* argv[]) {
int len = getSubString(strSource, strResult);
printf("len = %d, strResult=%s \nstrSource=%s\n",
len, strResult, strSource);
}
int getSubString(char (&array)[size], char *dest)
{
int newLen = 1, maxLen = 1;
char *pos = NULL;
for(int i = 0; i < size; i++) {
if(array[i] >= '0' && array[i] <= '9') {
if(array[i + 1] >= '0' && array[i + 1] <= '9' && array[i + 1] == array[i] + 1)
newLen++;
else {
if(newLen > maxLen) {
maxLen = newLen;
pos = array + i - maxLen + 1;
}
newLen = 1;
}
}
}
for(int i = 0; i < maxLen; i++)
dest[i] = pos[i];
return maxLen;
}