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个值出来生成新 ...
最新文章
- PAT(甲级)2018年秋季考试 7-1 Werewolf - Simple Version
- 21.Ubuntu安装软件时出现无法获得锁 /var/lib/dpkg/lock-frontend的问题解决
- android xml文件操作类,android操作xml
- 25行代码AC_ 2017年C/C++ A组第四题 方格分割(dfs剪痕+解题报告)
- js 字符ascii码转换函数
- python输入n×n的矩阵0和1_关于Python数组和矩阵的用法X[:,0]、X[:,1]、X[:,:,0]、X[:,:,1]、X[:,m:n]和X[:,:,m:n]...
- javascript-索引1908
- [洛谷P1908] 逆序对|归并排序|树状数组
- armboot和内核文件系统烧写总结
- 小确幸BBS论坛-2-首页
- HTML 静态网页制作Web 金州勇士队 库里 库里三分王 JavaScript CSS 图片轮播 时间效果 注册界面等
- Ola VS Uber:从印度到伦敦的出行战争
- 最强的优化器:把RAdam和LookAhead协同组合
- 应届生应聘软件开发岗位推荐书籍
- c语言memcmp函数详解,C语言之memcmp()函数
- Vue CLI3不兼容IE11打开空白报错SCRIPT1003: 缺少 ‘:‘
- android 开源 高斯模糊_Android高斯模糊你所不知道的坑
- 写推文满一年,分享 5 个小编常用的写作软件
- CCC产品认证的标准
- python如何计算平方_Python lmfit如何计算R平方?