输入一个字符串,内有数字和非数字字符,将其中连续的数字作为一个整数,依次存放到一数组a中并输出
输入一个字符串,内有数字和非数字字符,例如:a123x456 17960? 302tab5876
将其中连续的数字作为一个整数,依次存放到一数组a中。例如,123放在a[0],456放在a[1], ...。
用函数实现,int draw_digit(char *str, int* a)。其中str是字符串,a是一个数组,返回值表示整数的个数。
主程序中读入字符串,调用函数,然后在主程序中输出这些整数和整数个数。
#include<stdio.h>
int flag = 0;
int draw_digit(char* str, int* a)
{
int num = 0;
for (; *str != ''; str++)
{
if ((*str >= '0') && (*str <= '9'))
{
num = num * 10 + (*str - '0');
if (((*(str + 1) < '0')) || ((*(str + 1) > '9')))
{
*a = num;
a += 1;
num = 0;
flag++;
}
}
}
return flag;
}
int main()
{
char str[100];
int a[100] = { 0 }, i;
gets_s(str);
draw_digit(str, a);
if (flag == 0)
{
printf("no integers!");
return 0;
}
for (i = 0; a[i] != 0; i++)
printf("%d ", a[i]);
printf("n%dn", flag);
return 0;
}