#include<stdio.h>
#include<stdlib.h>
#include<iostream>
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
void take_num(const char *strIn, int *n, unsigned int *outArray)
{
unsigned int tmp=0;
int count=0;
int flag=0;
while (*strIn!='\0')
{
if (*strIn<='9'&&*strIn>='0')//字符型强制转换为int,-48即可
{
tmp*=10; //tmp+=(int)*strIn;-48;
tmp+=(int)*strIn-'0';
flag=1;
}
else if (flag==1)//更多的是标志位的技巧使用
{
flag=0;
outArray[count]=tmp;
tmp=0;
count++;
}
strIn++;
}
if (flag==1)//如果最后还有一个数字的话,还要追加一个判断
{
flag=0;
outArray[count]=tmp;
tmp=0;
count++;
}
*n=count;
}
int main()
{
const char strIn[]="bd45dfvd2sew6wfe9e44wefwe777scs1.059cw4";
int n;
unsigned int outArray[100];
take_num(strIn, &n, outArray);
printf("字符串中存在的数字的个数为%d:\n",n);
for (int i=0;i<n;i++)
printf("%d,",outArray[i]);
printf("\n");
getch(); /*从键盘读取一个字符,但不显示于屏幕*/
return 0;
}
#include<stdlib.h>
#include<iostream>
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
void take_num(const char *strIn, int *n, unsigned int *outArray)
{
unsigned int tmp=0;
int count=0;
int flag=0;
while (*strIn!='\0')
{
if (*strIn<='9'&&*strIn>='0')//字符型强制转换为int,-48即可
{
tmp*=10; //tmp+=(int)*strIn;-48;
tmp+=(int)*strIn-'0';
flag=1;
}
else if (flag==1)//更多的是标志位的技巧使用
{
flag=0;
outArray[count]=tmp;
tmp=0;
count++;
}
strIn++;
}
if (flag==1)//如果最后还有一个数字的话,还要追加一个判断
{
flag=0;
outArray[count]=tmp;
tmp=0;
count++;
}
*n=count;
}
int main()
{
const char strIn[]="bd45dfvd2sew6wfe9e44wefwe777scs1.059cw4";
int n;
unsigned int outArray[100];
take_num(strIn, &n, outArray);
printf("字符串中存在的数字的个数为%d:\n",n);
for (int i=0;i<n;i++)
printf("%d,",outArray[i]);
printf("\n");
getch(); /*从键盘读取一个字符,但不显示于屏幕*/
return 0;
}