字符串的输出

C语言中,有两个函数可以在控制台(显示器)上输出字符串,它们分别是:

 puts():输出字符串并自动换行,该函数只能输出字符串。printf():通过格式控制符%s输出字符串,不能自动换行。除了字符串,printf() 还能输出其他类型的数据。

示例

#include <stdio.h>
int main(){char str[] = "http://www.baidu.com";printf("%s\n", str);  //通过字符串名字输出printf("%s\n", "http://www.baidu.com");  //直接输出puts(str);  //通过字符串名字输出puts("http://www.baidu.com");  //直接输出return 0;
}

运行结果:

http://www.baidu.com
http://www.baidu.com
http://www.baidu.com
http://www.baidu.com

注意,输出字符串时只需要给出名字,不能带后边的[ ],例如,下面的两种写法都是错误的:

printf("%s\n", str[]);
puts(str[10]);

字符串的输入

在C语言中,有两个函数可以让用户从键盘上输入字符串,它们分别是:

 scanf():通过格式控制符%s输入字符串。除了字符串,scanf() 还能输入其他类型的数据。gets():直接输入字符串,并且只能输入字符串。

scanf() 和 gets() 的区别:

 scanf() 读取字符串时以空格为分隔,遇到空格就认为当前字符串结束了,所以无法读取含有空格的字符串。gets() 认为空格也是字符串的一部分,只有遇到回车键时才认为字符串输入结束,所以,不管输入了多少个空格,只要不按下回车键,对 gets() 来说就是一个完整的字符串。换句话说,gets() 用来读取一整行字符串。

示例

#include <stdio.h>
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() 时不用添加&,它们本身就会转换为地址。

其实 scanf() 也可以读取带空格的字符串
,scanf() 的用法还可以更加复杂和灵活,它不但可以完全替代 gets() 读取一整行字符串,而且比 gets() 的功能更加强大。比如,以下功能都是 gets() 不具备的:

 scanf() 可以控制读取字符的数目;scanf() 可以只读取指定的字符;scanf() 可以不读取某些字符;scanf() 可以把读取到的字符丢弃。

如果感觉不错的话欢迎点赞哟!!!

C语言字符串的输入和输出相关推荐

  1. c语言将字符串按空格分割_字符串单词输入反向输出怎么搞?C语言又带着二维数组来了!...

    01 今天给大家安利一份代码,是关于字符串单词输入反向输出的实现效果的,就比如等你输入"welcome to China",程序会经过处理输出"China to welc ...

  2. python输出变量的值使用_如何使用python语言中的输入和输出打印对应的值

    在python设计语言中,输入使用input()方法,而输出使用print()方法:其中,输出方法可以拼接变量,如字符串.数值类型的.下面利用几个实例说明python语言中的输入和输出的用法,操作如下 ...

  3. C语言 字符串分类统计 输入一行字符,分别统计出其中英文字母、数字、空格和其他字符的个数

    C语言 字符串分类统计 输入一行字符,分别统计出其中英文字母.数字.空格和其他字符的个数 题目: 输入一行字符,分别统计出其中英文字母.数字.空格和其他字符的个数 样例输入: aklsjflj123 ...

  4. c语言字符串赋初值并输出字符,C语言字符串使用指南

    写在前面:学习的第一门语言是Java,之前对C也了解一点,也只是了解一点,在加上长时间没有接触了,基本就只会一个Hello World了.现在由于准备升本考试,不得不从头开始学C.这里从零开始,记录C ...

  5. 1.2、从“生日贺卡”看C++字符串的输入和输出

    功能 1.字符串的输入和输出 2.在贺卡中插入字符串 代码 //生日贺卡#include<iostream> //包含头文件,即使用iostream里的程序来用 using namespa ...

  6. python 字符串的输入和输出

    python 字符串的输入和输出 1.字符串的输入 python中提供了input()函数可以用于接收字符串的输入,默认的标准输入是键盘,并且会将输入内容转化为字符串类型,如需将其转化为整型等数据类型 ...

  7. C语言字符和字符串的输入与输出

    C语言 一.输入单个字符 1.scanf函数输入单个字符 C语言scanf输入时缓冲区问题 scanf函数是标准输入流(从键盘接收数据),接收的数据放入输入缓冲区中,其中就包括在键盘输入的空格.回车这 ...

  8. C语言数据的输入与输出

    在C语言中输入和输出为两个基本的要素. 其中我分为两个部分:第一个是字符型的输入与输出,第二种是非字符型的输入与输出. 先来讲讲字符型的-- 其中有两个函数:getchar与putchar.这两个都是 ...

  9. C语言中的输入与输出

    C语言的标准库实现了简单地文本输入和输出,文本流由一系列行组成,行的结尾是换行符,如果该系统并没有遵循这种模式,则标准库将通过一系列措施使得该系统适应这种模式,例如标准库可以在输入端将回车符和换页符都 ...

最新文章

  1. Linux系统的快照是什么,linux – 文件系统快照与简单复制文件有何不同?
  2. CSS样式学习-CSS 背景
  3. LeetCode Kth Largest Element in an Array(小根堆)
  4. html里注释的写法正确的是,网页怎么注释语句 HTML的注释正确写法是?
  5. 极市分享|第32期 张德兵小美:分布式人脸识别及工业级运用经验
  6. Centos7 下安装配置tomcat7
  7. android 透明变成白色,android – 状态栏不透明但是白色
  8. Javascript取select的选中值和文本
  9. Spring Cloud整合Nacos实现动态配置
  10. 天津商业大学C语言题库,天津商业大学c语言机考改错及解答(含答案)解析.doc
  11. navicat和 plsql 连接oracle数据库 总结
  12. 基于数值数据理解和重要信息验证的数据到文本生成模型
  13. JQuery Dialog(转)
  14. linux 使用apidoc 生成Restful web Api文档
  15. JAVA加载一个目录下有依赖关系本地库的通用代码
  16. C++模拟鼠标键盘操作(转)
  17. 任何共享软件作者都能挣到一年10万美金以上的收入,只要他想的话
  18. 教你破解已转换为EXE格式的Bat
  19. 企业安全-003NTA大法
  20. 关于抽烟、戒烟、或者说是收放自如

热门文章

  1. 电脑抓整个路由器的包_网络是电竞游戏体验的命脉 2018年年度电竞路由器功能盘点...
  2. java 字符串是否包含字符串_在Java中,如何检查字符串是否包含子字符串(忽略大小写)?...
  3. w ndows7与XP哪个好,windows7和xp哪个好 windows7好用吗
  4. win7系统锁定计算机设置方法
  5. jmeter连接mysql数据库驱动_十八、JMeter实战-JDBC连接MySQL数据库
  6. MySQL外键命名规范
  7. dataframe记录数_大数据系列之Spark SQL、DataFrame和RDD数据统计与可视化
  8. layui导航栏页面滚动固定_网站建设页面导航如何降低用户寻找的时间
  9. android jni fork()子进程不运行_Android高级面试谈谈Zygote的理解
  10. 笨方法学python3怎么样_有个很笨的女朋友,是怎么样的体验?