c语言定义数组中字母怎么输入,c语言数组怎么输入?
在C语言中,有两个函数可以让用户从键盘上输入数组数据,它们分别是gets()和scanf()。scanf()是通过格式控制符%s输入数组字符串,除了字符串,还能输入其他类型的数据;gets()是直接输入数组字符串,并且只能输入字符串。
但是,scanf()和gets()是有区别的。
scanf()读取字符串时以空格为分隔,遇到空格就认为当前字符串结束了,所以无法读取含有空格的字符串。
gets()认为空格也是字符串的一部分,只有遇到回车键时才认为字符串输入结束,所以,不管输入了多少个空格,只要不按下回车键,对 gets() 来说就是一个完整的字符串。换句话说,gets() 用来读取一整行字符串。
举个例子:#include
int main(){
char str1[30] = {0};
char str2[30] = {0};
char str3[30] = {0};
//gets() 用法
printf("Input a string: ");
gets(str1);
//scanf() 用法
printf("Input a string: ");
scanf("%s", str2);
scanf("%s", str3);
//分别输出
printf("\nstr1: %s\n", str1);
printf("str2: %s\n", str2);
printf("str3: %s\n", str3);
return 0;
}
运行结果:Input a string: C C++ Java Python
Input a string: PHP JavaScript
str1: C C++ Java Python
str2: PHP
str3: JavaScript
第一次输入的字符串被 gets() 全部读取,并存入 str1 中。第二次输入的字符串,前半部分被第一个 scanf() 读取并存入 str2 中,后半部分被第二个 scanf() 读取并存入 str3 中。
注意,scanf() 在读取数据时需要的是数据的地址,这一点是恒定不变的,所以对于 int、char、float 等类型的变量都要在前边添加&以获取它们的地址。但是在本段代码中,我们只给出了字符串的名字,却没有在前边添加&,这是为什么呢?因为字符串名字或者数组名字在使用的过程中一般都会转换为地址,所以再添加&就是多此一举,甚至会导致错误了。
就目前学到的知识而言,int、char、float 等类型的变量用于 scanf() 时都要在前面添加&,而数组或者字符串用于 scanf() 时不用添加&,它们本身就会转换为地址。读者一定要谨记这一点。
至于数组名字(字符串名字)和地址的转换细节,以及数组名字什么时候会转换为地址。
c语言定义数组中字母怎么输入,c语言数组怎么输入?相关推荐
- java数组输入一个实数_用java!!输入五个数,保存到一个数组中,然后将... C语言,编写一个程序,从键盘输入5个数,算出总和......
导航:网站首页 > 用java!!输入五个数,保存到一个数组中,然后将... C语言,编写一个程序,从键盘输入5个数,算出总和... 用java!!输入五个数,保存到一个数组中,然后将... C ...
- 2021.04.06JAVA定义一个数组,随便输入一个数字,判断这个数在数组中是否存在,存在返回数组的下标,否则返回-1
定义一个数组,随便输入一个数字,判断这个数在数组中是否存在,存在返回数组的下标,否则返回-1 public class TestD {public static void main(String[] ...
- C语言向有序数组中插入一个数使该数组仍保持有序
C语言向有序数组中插入一个数使该数组仍保持有序 #include<stdio.h> int main() { int n,i,j,t,k; printf("您喜欢 ...
- c++ 返回数组中最大的值_Swift语言必学秘技:数组里面的使用方法
Swift语言必学秘技:数组里面的使用方法 这一期我们来说一下Swift语言里面数组的应用方法. 在Swift语言中,数组中可以放入任何类型的数据.这些数据包括整型,字符串,甚至是对象. 第一部分, ...
- c++[2035]将a数组中第一个元素移到数组末尾,其余数据依次往前平移一个位置。
[题目描述] 将a数组中第一个元素移到数组末尾,其余数据依次往前平移一个位置. [输入] 第一行为数组a的元素个数: 第二行为n个小于1000的正整数. [输出] 平移后的数组元素,每个数用一个空格隔 ...
- asp数组中REDIM的用法(动态数组)
asp数组中REDIM的用法(动态数组) 动态数组里面的一个语句,只能出现在过程里面,可以多次使用.可以改变数组大小,和维数 格式: REDIM [Preserve] 数组名(下标1[下标2....] ...
- 数组中哪些常用方法会修改原数组
一.不会改变原来数组的有: concat() concat() 方法用于连接两个或多个字符串. 该方法没有改变原有字符串,但是会返回连接两个或多个字符串新字符串. every() every() 方法 ...
- js移除数组中的元素(返回新数组)
移除数组中的元素(返回新数组) 移除数组 arr 中的所有值与 item 相等的元素.不要直接修改数组 arr,结果返回新的数组. 输入:[1,2,3,4,2] ,2 输出:[1,3,4] 第一种解决 ...
- 利用for循环把遍历数组中的元素依次获取出来 数组笔记及基本知识点
利用for循环把遍历数组中的元素依次获取出来 数组索引号从0开始 所以i必须从0开始 i<6 <script>var arr = ['blue', 2, true, 4, 5, 6 ...
- vba 跳到下一个循环_VBA野知识分享:从一个数组中取部分值生成新数组,不使用循环的思路...
从一个数组中取部分值生成新数组,要实现此需求通常都是采用循环的方法来完成,那有没有更简易的思路呢? 借用jscript可以实现,直接取值,不用循环.例如从100000万中元素是取8000个值出来生成新 ...
最新文章
- LibreOJ β Round #2
- 解决 Windows10 和 Ubuntu18.04.4 双系统 时间同步不一致问题
- html5网站测试工具,基于HTML5网页的前端技术测试技巧
- php 图片上传 水印,PHP - 图片上传并添加水印
- 2016年物联网技术将从概念走向落地
- 大型网站技术架构 读书笔记 (二) 大型网站架构模式
- python五子棋双人对弈_基于python的socket实现单机五子棋到双人对战
- 微信小程序,实现一个简易的新闻网
- PCIE控制器——设备地址空间访问——配置空间
- 《指弹:风居住的街道》
- Pitest内存泄露分析 (工具使用IDEA、Jprofiler)
- Pycharm 使用多个光标进行编辑
- okd下gitlab首次启动没有重置密码如何登陆
- bzoj 2648 SJY摆棋子 cdq分治+树状数组
- Alpha 事后诸葛亮
- 3dsMax2016卡死的一种解决办法
- qq影音qlv转mp4工具软件电脑pc版
- 国外优秀的人工智能商务工具,主要有哪些?
- 停车场管理_充电桩_停车收费_物业管理_源码
- 无法停止‘通用卷’设备的解决方案
热门文章
- 超详细的Python面向对象编程讲解
- Extjs实现角色权限流控制,对fieldset,checkbox的动态控制
- LVDS学习笔记之lvds_transceiver设计及仿真
- 这几个解决D5渲染器崩溃闪退的方法,一定要试试
- 信息安全技术--轮转机密码
- 《IT时代周刊》:雅虎兵败中国
- 探索搜索引擎技术的现状和将来(转)
- [OfficeExcel] OfficeExcel2010 第23讲 Excel饼图美化与PPT图表
- Jenkins配置邮件, Extended E-mail Notification, 破解管理员密码
- 地摊经济:78岁高龄老人摆地摊的背后,蕴藏着9000万老年再就业市场的巨大商机