找整数(串)

找整数(串)

时间: 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;
}

题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注