描述:在字符串内查找数字,并保存在数组中,例如a123ds42。
则a[0] = 123,a[1] = 42.
#include <ctype.h>
#include <stdio.h>
#define MAX 20 //数组的最大长度
/*处理字符串*/
int findnum(const char *str)
{
int i = 0,j = -1,arr[MAX] = {0};//切记初始化数组
while(str[i] != '\0')
{
if(isdigit(str[i]))//判断字符串内数字的开始
{
j += 1;//数组下表开始计数
while(isdigit(str[i]))
{
arr[j] = arr[j]*10+str[i]-'0'; // char 转换为 int
i++;
}
}
else
{
i++;
}
}
for(i = 0;i <= j;i++)
{
printf("arr[%d] = %d\t",i,arr[i]);
}
printf("\n");
return j+1;//返回字符串内整数的个数
}
int main(void)
{
char str[] = {"123acd312egfvr2f23vr3e2fvr3g34gf43fgt3f2"};
int ret = 0;
ret = findnum(str);
printf("The total number in string is : %d.\n",ret);
return 0;
}