【问题描述】
输入一行字符串,含有数字和非数字字符以及空格等,如:
df23adfd56 2343?23dgjop535
如果将其中所有连续出现的数字视为一个整数,要求统计在该字符串中共有多少个整数,并将这些数依次输出。
【输入文件】
从当前目录下的trans.in文件中取得输入。
该文件内只有一行,含有数字和其它任意字符。该行最长含80个字符。
【输出文件】
将输出打印到当前目录下的trans.out文件中。
输出文件第一行为字符串包含的整数个数,第二行依次为各个整数,各整数之间用一个空格分隔。在第二行末也要输出一个回车符。
【输入样例】
df23adfd56 2343?23dgjop535
【输出样例】
5
23 56 2343 23 535
【样例说明】
在字符串df23adfd56 2343?23dgjop535中有5个整数分别是
23 56 2343 23 535
#include <stdio.h>
int main()
{
int i;
char str[50]={0};
gets(str);
int num[50]={0};
char *p=str;
int *q=num;
int length=0;
while(*p!='\0')
{
if(*p>='0'&&*p<='9')
{*q=*p-'0';
p++;
while(*p>='0'&&*p<='9')
{
*q=(*q)*10+(*p-'0');
p++;
}
length++;
q++;
}
p++;
}
printf("%d\n",length);
for(i=0;i<length;i++)
printf("%d ",num[i]);
}