在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语言数组怎么输入?相关推荐

  1. java数组输入一个实数_用java!!输入五个数,保存到一个数组中,然后将... C语言,编写一个程序,从键盘输入5个数,算出总和......

    导航:网站首页 > 用java!!输入五个数,保存到一个数组中,然后将... C语言,编写一个程序,从键盘输入5个数,算出总和... 用java!!输入五个数,保存到一个数组中,然后将... C ...

  2. 2021.04.06JAVA定义一个数组,随便输入一个数字,判断这个数在数组中是否存在,存在返回数组的下标,否则返回-1

    定义一个数组,随便输入一个数字,判断这个数在数组中是否存在,存在返回数组的下标,否则返回-1 public class TestD {public static void main(String[] ...

  3. C语言向有序数组中插入一个数使该数组仍保持有序

    C语言向有序数组中插入一个数使该数组仍保持有序 #include<stdio.h> int main() {     int n,i,j,t,k;     printf("您喜欢 ...

  4. c++ 返回数组中最大的值_Swift语言必学秘技:数组里面的使用方法

    ​Swift语言必学秘技:数组里面的使用方法 这一期我们来说一下Swift语言里面数组的应用方法. 在Swift语言中,数组中可以放入任何类型的数据.这些数据包括整型,字符串,甚至是对象. 第一部分, ...

  5. c++[2035]将a数组中第一个元素移到数组末尾,其余数据依次往前平移一个位置。

    [题目描述] 将a数组中第一个元素移到数组末尾,其余数据依次往前平移一个位置. [输入] 第一行为数组a的元素个数: 第二行为n个小于1000的正整数. [输出] 平移后的数组元素,每个数用一个空格隔 ...

  6. asp数组中REDIM的用法(动态数组)

    asp数组中REDIM的用法(动态数组) 动态数组里面的一个语句,只能出现在过程里面,可以多次使用.可以改变数组大小,和维数 格式: REDIM [Preserve] 数组名(下标1[下标2....] ...

  7. 数组中哪些常用方法会修改原数组

    一.不会改变原来数组的有: concat() concat() 方法用于连接两个或多个字符串. 该方法没有改变原有字符串,但是会返回连接两个或多个字符串新字符串. every() every() 方法 ...

  8. js移除数组中的元素(返回新数组)

    移除数组中的元素(返回新数组) 移除数组 arr 中的所有值与 item 相等的元素.不要直接修改数组 arr,结果返回新的数组. 输入:[1,2,3,4,2] ,2 输出:[1,3,4] 第一种解决 ...

  9. 利用for循环把遍历数组中的元素依次获取出来 数组笔记及基本知识点

    利用for循环把遍历数组中的元素依次获取出来 数组索引号从0开始 所以i必须从0开始  i<6 <script>var arr = ['blue', 2, true, 4, 5, 6 ...

  10. vba 跳到下一个循环_VBA野知识分享:从一个数组中取部分值生成新数组,不使用循环的思路...

    从一个数组中取部分值生成新数组,要实现此需求通常都是采用循环的方法来完成,那有没有更简易的思路呢? 借用jscript可以实现,直接取值,不用循环.例如从100000万中元素是取8000个值出来生成新 ...

最新文章

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

热门文章

  1. 图像融合综述论文整理
  2. admin后台管理系统
  3. 计算机相乘求和的函数,Excel五大求和操作,除了sum函数你知道有几个?-excel乘法函数...
  4. 阿里云服务器使用宝塔面板管理以及项目部署
  5. 为什么程序员很难找到合适的另一半?
  6. 使用外网访问Flask项目
  7. html5 app 原理,浅析开发html5 app的三大优势
  8. vue3-proxy
  9. 解决:本地计算机无法复制文件到远程计算机
  10. 棒球游戏 android,真正的职业棒球比赛