c语言输入一行未知个数数字存入数组

2023-11-15

转载https://www.cnblogs.com/wd1001/p/4826855.html

一直有个疑问输入一行数字存入数组时若不知道数字的个数怎么办,最容易想到的办法就是接收字符然后转化为数字,但这样太过麻烦。

今天上网查了下,说可以用ungetc()函数将字符送回输入流,在这里总结归纳一下

此外还意外的解决了另外一些以前遇到的问题,也是在调试代码时发现的,用此段代码可以用除了空格以外的字符作为分隔符,而且分隔符的长度也可以很长:如输入12qwertyuiop34asdfghjkl123,23zxc45  最后得到的数组为:a[0]=12,a[1]=34,a[2]=123,a[3]=23,a[4]=45

#include<stdio.h>
#include<ctype.h>
int main()
{
	int a[1000];
	char c;
	int i = 0;
	int n = 0;
	while ((c = getchar()) != '\n')
	{
		if (isdigit(c))
		{
			ungetc(c, stdin);//将c送回输入流
			scanf("%d", &a[n++]);
		}	
		
	}
	     for (i = 0; i < n; i++)
		     {
		         printf("%d ", a[i]);
		     }
	     return 0;
	
}

  

转载于:https://www.cnblogs.com/zhiliang9408/p/11518910.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

c语言输入一行未知个数数字存入数组 的相关文章

  • 入职字节外包一个月,我还是选择了离职!

    有一种打工人的羡慕 叫做 大厂 真是年少不知大厂香 错把青春插稻秧 但是 在深圳有一群比大厂员工更庞大的群体 他们顶着大厂的 名 做着大厂的工作 还可以享受大厂的伙食 却没有大厂的 命 他们就是大厂的 外包员工 什么都做了 和什么都没做其实

随机推荐

  • Tomcat闪退的解决方法

    Tomcat闪退 在Tomcat的bin目录中的startup bat中 添加 set JAVA HOME E Program Files Java jdk 8 set CATALINA HOME E Users a eclipse Tom
  • 威胁快报

    一 背景 近日阿里云安全团队发现了一起利用多个流行漏洞传播的蠕虫事件 黑客首先利用ThinkPHP远程命令执行等多个热门漏洞控制大量主机 并将其中一台 肉鸡 作为蠕虫脚本的下载源 其余受控主机下载并运行此蠕虫脚本后 继续进行大规模漏洞扫描和
  • Vue2.0创建一个新项目

    Vue2 0创建一个新项目 一 安装脚手架 一切的一切都是需要提前安装好node哦 不会安装和配置的可以看 Node初次安装配置 个人博客 Node初次安装配置 CSDN win R输入cmd 打开终端 在终端输入 npm install
  • 判断一个整数是否是回文数

    问题 输入一个整数 10位以内 也可自己改用更多位 需要修改类型 判断是否是回文数 include
  • 关于计算机的小故事案例,小故事分镜头脚本范例两分钟4399奶块电脑

    PublicSubFocusMe ctlNameAsControl WithctlName SelStart 0 SelLength Len ctlName EndWith EndSub Nowaddacalltothissubroutin
  • zigzag扫描的matlab实现

    zigzag扫描的matlab实现 zigzag的扫描方式如下图所示 以 4 4 为例 下图是matlab中数组各位置的索引值 用横纵坐标来分析 2 3 4 5 6 7 8 1 1 1 2 3 1 4 1 4 2 3 4 4 4 2 1 2
  • 局域网、以太网、无线局域网学习笔记

    还有一年选择院校 加油 文章目录 局域网基本概念和体系结构 局域网 局域网拓扑结构 局域网的传输介质 局域网介质访问控制方法 局域网的分类 IEEE 802 MAC子层和LC子层 小结思维导图 以太网 以太网概述 以太网提供无连接 不可靠的
  • 通过按钮动态改变 el-dialog 的宽度

    1 按钮
  • Ubuntu不能进入NTFS分区(error mounting)

    Ubuntu不能进入NTFS分区 error mounting 装了Windows10与Ubuntu双系统后 在Ubuntu系统下想进入Windows的某个NTFS分区 点击时却出现下面错误 也可能在挂载移动硬盘时出现如下错误 Error
  • 金蝶KIS专业版二次开发探索

    1 前言 作为软件服务 有时候我们接受的任务是一个全新的 开发团队内没有人有相关经验的这么一个任务 这时候无论对于我们本身还是对于团队来说 都面临着一个新的挑战 如何在没有做过此类任务情况下凭借一些基本经验完成任务 顺利实现给客户的交付 我
  • 智能合约漏洞——短地址攻击

    基础知识 严格意义来说 短地址 参数攻击并不算智能合约的漏洞 这是一个应用上的接口数据处理问题 在介绍过得ERC20模板智能合约 其中有个transfer函数 其定义如下 function transfer address to uint2
  • WinForm 编程中控件的使用小技巧(splitter实现窗口分区域,改变Button的形状)

    一 Splitter 控件的主要作用就是将窗口分区并可以调节区域大小 比如 我想将窗口分为左右两个区域 并可以调节两个区域所占的比例 操作流程如下 1 新建一个窗口 Form1 2 在Form1中添加一个Panel控件Panel1 并将其D
  • IPv6的基本配置

    p拓扑图 AR1 interface GigabitEthernet0 0 0 ipv6 enable ipv6 address 2000 1 64 ipv6 route static 3000 64 2000 2 静态路由 AR2 int
  • BES2300x笔记(4) -- TWS组对与蓝牙配对(Peer or Pair傻傻分不清)

    哈喽大家好 这是该系列博文的第四篇 篇 lt lt 系列博文索引 快速通道 gt gt 首先上一个链接 TWS耳机火遍华强北 为何干不过苹果AirPods 一 前言 看到有 道友 在评论区留言 对TWS组对 BT配对以及回连流程部分很迷糊
  • PostgreSQL源码结构

    PostgreSQL的使用形态 PostgreSQL采用C S 客户机 服务器 模式结构 应用层通过INET或者Unix Socket利用既定的协议与数据库服务器进行通信 另外 还有一种 Standalone Backend 使用的方式 虽
  • Linux系统下JDK17安装+环境配置

    我们进入到cd usr lib 下然后创建一个jdk17的文件夹 mkdir jdk17 进入到jdk17目录下 下载jdk17包 wget https download oracle com java 17 latest jdk 17 l
  • 1600*C. Slava and tanks(思维)

    解析 如果n为奇数 则偶数位为奇数位少 1 则先轰炸偶数位 再轰炸奇数位 再一次轰炸偶数位 如果n为偶数 则任意顺序 于是无论奇偶 全部按照 偶 奇 偶 轰炸 则总次数为 n n 2 下取整 include
  • 使用python读取excel中的数据,并绘制折线图

    使用python读取excel中的数据 并绘制折线图 做实验的时候采集到一些数据 从文本拷贝到excel 然后从十六进制转换成十进制 图表是分析数据的有利工具 使用python绘制出的图表简明美观 所以我这次尝试一下 python新手 请多
  • WORD表格合并单元格并居中对齐

    捯饬了挺久 一直不能居中 表格的中间 1 合并单元格 然后就一直这样 解决方案
  • c语言输入一行未知个数数字存入数组

    转载https www cnblogs com wd1001 p 4826855 html 一直有个疑问输入一行数字存入数组时若不知道数字的个数怎么办 最容易想到的办法就是接收字符然后转化为数字 但这样太过麻烦 今天上网查了下 说可以用un