1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 输入一个字符串内有数字和非数字字符 例如:A123x456...

输入一个字符串内有数字和非数字字符 例如:A123x456...

时间:2023-07-27 05:36:46

相关推荐

输入一个字符串内有数字和非数字字符 例如:A123x456...

#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);

}

运行结果:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。