编了一个程序,没达到结果,求助!
输入一个字符串,内有数字和非数字字符,如a123x456 17960? 302tab5879将其中连续的数字作为一个整数,依次存放到 一数组中,统计共有多少个字符,并输出这些数!!程序代码:
#include <stdio.h> #define N 50 int main (void) { int i,j=0,k=0,m=0,n=0,b=0,sum=0; int a[10]; char str[N]; char * p; gets(str); printf("\n"); puts(str); p=str; for(i=0;i<N;i++) { if(*(p+i)>='0'&&*(p+i)<='9')/*判断字符串中的字符是否是0到9之间的数*/ { a[j]=*(p+i); /*是的话就赋给a数组*/ n=m++; /*n用来存放这一次共有多少个数字*/ k=j++; /*a[k]是用来存放数字的,每存放一个数字,j自加一次*/ } for(j=0;j<=k;j++) { for(m=n;m>0;m--) a[j]=a[j]*10; sum+=a[j]; b++; } if(!(*(p+i)>='0'&&*(p+i)<='9')) { m=0; n=0;j=0;k=0; /*假如当前字符不是数字,就将m,n,j,k归零*/ } printf("%3d,%3d",sum,b); } getch(); }