C语言问题,文件?

【问题描述】输入一行字符串,含有数字和非数字字符以及空格等,如:df23adfd562343?23dgjop535如果将其中所有连续出现的数字视为一个整数,要求统计在该字... 【问题描述】输入一行字符串,含有数字和非数字字符以及空格等,如:
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
【评分标准】结果正确则该测试点得满分,否则该测试点得0分。上传c语言源程序为trans.c。
展开
 我来答
听不清啊
高粉答主

2019-10-23 · 说的都是干货,快来关注
知道顶级答主
回答量:7.8万
采纳率:89%
帮助的人:1.9亿
展开全部

因为要先输出数字个数,所以要先保存字符串,扫描一遍统计数字个数后,两次扫描时输出各个数字。

#include <stdio.h>

int main()

{ char s[100];

  int i,k,n=0;

  gets(s);

  for(i=0; s[i]; i++)

    if(s[i]>='0'&&s[i]<='9')

    { if(!k)n++;

      k=1;

    }

    else if(k)k=0;

  printf("%d\n",n);

  for(i=k=0; s[i]; i++)

    if(s[i]>='0'&&s[i]<='9')

    { putchar(s[i]);

      k=1;

    }

    else if(k)

    { k=0;

      putchar(' ');

    }

  return 0;

}

追问
老哥能用文件的形式写个代码么,那个检测的系统输出不了
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式