已知一个字符串,内有数字和非数字字符,例如akl23x456? 302ge1463,将其中连续的数字作为一个整体,依次存放到一维数组a中,例如a[0]=123,a[11=456,…,设计算法实现上述要求。

admin2014-12-25  52

问题 已知一个字符串,内有数字和非数字字符,例如akl23x456? 302ge1463,将其中连续的数字作为一个整体,依次存放到一维数组a中,例如a[0]=123,a[11=456,…,设计算法实现上述要求。

选项

答案 void ContDigit(char*str,int 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中,然后继续扫描,直到所有的字符全部检查完毕。算法描述如下。
转载请注明原文地址:https://kaotiyun.com/show/5ZVx777K
0

最新回复(0)