#include<stdio.h>
int main ()
{
int i=0;
int j=0; //计算数字字符的个数
int m=0;
int k=0; //数字的位数
int a=0;//数字的个数
int tmp;
int *p;
char *pr;
char arr[20]=“hd34jbn322knk55”;
int brr[20];
p=&brr[0]; //将元素的地址赋给指针变量
pr=&arr[0];
while((p+i)!=’\0’)
{
if(‘0’<=(p+i)&&(p+i)<=‘9’)//若为数字字符则j++
{
j++;
}
else
{
if(j>0) //如果数字字符个数大于0则进行赋值计算
{
dight=(p+i)-48;
k=1;
while(k<j)
{
for(;m<k;m++)
{
tmp=tmp*10//每提升一个位次tmp*10
dight=dight+((p+i-k) -48)tmp;将所包含的每个数字字符转为整形且乘以相应的tmp
}
k++
/ }
*p=dight;//将所得值赋予指针
p++;
a++;
j=0;
}
}
i++
}
if(j>0)//若字符串最后为数字字符则运算过程不会进行所以再进行一次赋值因为不会进入else
{
dight=(p+i)-48;
k=1;
while(k<j)
{
for(;m<k;m++)
{
tmp=tmp10
dight=dight+(*(p+i-k) -48)*tmp;
}
k++
}
*p=dight;
p ++;
a++;
j=0;
}
p=&brr[0];
j=0;
for(;j<a;j++)
{
printf("%d",(p+i));
printf("\n");
}
return 0;
}
输出字符串中所有数字
最新推荐文章于 2023-01-12 20:57:10 发布