A-A+
已知一个字符串 内有数字和非数字字符 例如akl23x456? 302ge1463 将其中连
问题详情
已知一个字符串,内有数字和非数字字符,例如akl23x456? 302ge1463,将其中连续的数字作为一个整体,依次存放到一维数组a中,例如a[0]=123,a[11=456,…,设计算法实现上述要求。
请帮忙给出正确答案和分析,谢谢!
参考答案
正确答案:void ContDigit(char*strint a=){/*统计给定的字符串中的数值并放入数组a中*/i=0:P=str;while(*p!=‘\0’)if(*P>=‘0’&&*P<=‘9’){sum=0;while((*p!=‘\0’&&*P>=‘0’&&*P<=‘9’){sum=sum*10+*p一‘0’;p++;}a[i++]=sum;}else p++;}
扫描输入的字符串,当串不结束时,若读的字符为数字字符,则该字符开始检查其后的若干字符,若是数字字符则累加,直到非数字字符为止,并将该数字放人数组a中,然后继续扫描,直到所有的字符全部检查完毕。算法描述如下。