找整数(串)
时间: 1ms 内存:128M
描述:
输出任意的一个字符串内(字符串内可以包含空格)的所有整数。输出时两整数间有四个空格。
输入:
输入一串字符
输出:
输出所有的整数
示例输入:
a00asd123e24
示例输出:
0 123 24
提示:
参考答案(内存最优[752]):
#include<stdio.h>
#include<string.h>
int main()
{
char str[80];
int i,j=0,k,l;
gets(str);
for(i=0;str[i]!='\0';i++)
{
if(str[i]>='0'&&str[i]<='9')
{
while(str[i]=='0')
i++;
if(str[i]>='1'&&str[i]<='9')
{
l=i;
while(str[i+1]>='0'&&str[i+1]<='9')
i++;
for(k=l;k<=i;k++)
printf("%c",str[k]);
for(k=i+1;str[k]!='\0';k++)
if(str[k]>='0'&&str[k]<='9')
{
printf(" ");
break;
}
}
else
{
if(str[i]!='\0')
printf("0 ");
else
printf("0");
}
}
}
return 0;
}
参考答案(时间最优[0]):
#include<stdio.h>
#include<string.h>
int main()
{
char str[80];
int i,j=0,k,l;
gets(str);
for(i=0;str[i]!='\0';i++)
{
if(str[i]>='0'&&str[i]<='9')
{
while(str[i]=='0')
i++;
if(str[i]>='1'&&str[i]<='9')
{
l=i;
while(str[i+1]>='0'&&str[i+1]<='9')
i++;
for(k=l;k<=i;k++)
printf("%c",str[k]);
for(k=i+1;str[k]!='\0';k++)
if(str[k]>='0'&&str[k]<='9')
{
printf(" ");
break;
}
}
else
{
if(str[i]!='\0')
printf("0 ");
else
printf("0");
}
}
}
return 0;
}
题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。
