#include <stdio.h>
#include <string.h>
#include <math.h>
int main()
{
void sum_output(char s[],int *pn,int *pi); //字符串数组、两个指针变量作形参char str[100];int i=0,num[15],inter[25];//num数组用来存放找到的数字,inter数组存放找到的整数printf("input string:\n");while((str[i]=getchar())!='\n')i++;str[i]='\0';sum_output(str,num,inter);//将字符串首字符地址传递到sum_output函数,num,inter数组首元素地址通过形参传递return 0;
}
void sum_output(char s[],int *pn,int *pi)
{
int i,j,t,sum,o,flag=0,k=0,*pi1;pi1=pi; t=strlen(s);for(i=0;i<t;i++){if(*(s+i)>='0'&&*(s+i)<='9'){*pn++=*(s+i)-'0'; //把字符类型数字转换成整数类型数字赋给num数组k++;flag=1;}else{if(flag==1){sum=0;for(j=0;j<k;j++){o=pow(10,k-1-j)*(*(pn-k+j));//调用pow函数把num数组中的数字转换成十进制整数sum=sum+o;}*pi++=sum;flag=0;k=0;}}}if(k!=0) //考虑最后一个字符为数字的情况{ sum=0;for(j=0;j<k;j++){o=pow(10,k-1-j)*(*(pn-k+j));sum=sum+o;}*pi++=sum;}*pi='\0';printf("integers: ");for(i=0;*(pi1+i)!='\0';i++)printf("%d ",*(pi1+i));printf("\nnumber:%d\n",i);
}
运行结果: