文档章节

C Primer Plus 第4章 字符串和格式化输入输出--4.2 字符串简介

idreamo
 idreamo
发布于 2016/05/11 05:18
字数 687
阅读 9
收藏 0

4.2.1 char数组类型和空字符

字符串就是一个或多个字符的序列。

“Zing went the strings of my heart!”

双引号不是字符串的一部分,它只是通知编译器其中包含了一个字符串。

C没有为字符串定义专门的变量类型,而是把它存储在char数组中。

字符串中的字符存放在相邻的存储单元中,每个字符占用一个单元;而数组由相邻的存储单元组成,所以把字符串存储到数组中是很自然的选择。

数组中最后一个位置显示\0,这个字符就是空字符,C用它来标记字符串的结束。

空字符不是数字0;它是非打印字符,其ASCII的码的值为0.

该字符的存在意味着数组的单元数必须至少比要存储的字符数多1.

数组,就是同一类型的数据元素的有序序列。

使用字符串开始复杂起来了,必须创建一个数组,把字符串的字符逐个的放进数组中,还要记着在结尾添加一个\0.

4.2.2 使用字符串

%s告诉printf()要打印一个字符串。

请注意:scanf()开始读取输入以后,会在遇到的第一个空白字符空格(blank)、制表符(tab)、或者换行符(newline)处停止读取。

一般情况下,使用%s的scanf()只会把一个单词而不是把整个语句作为字符串读入。

C使用其他输入函数来处理一般字符串(例如gets()).

字符串和字符

字符串"x"和字符常量'x'不同。

其中一个区别是'x'属于基本类型char,而"x"则属于派生类型char数组。

第二个区别是"x"实际上是由两个字符('x'和空字符'\0')组成。

4.2.3 Strlen()函数

sizeof运算符,它以字节为单位给出数据的大小。

strlen()函数,是以字符为单位给出字符串的长度。

sizeof给出的数目比strlen()要大,是因为它把用来标志字符串结束的不可见的空字符也计算在内。

sizeof是否使用圆括号,取决于您是想获取一个类型的大小还是想获取某个具体量的大小。圆括号对于类型是必需的,而对于具体量是可选的。不过,在所有情况下都使用圆括号会更好。

strlen()和sizeof都是重要的编程工具。

 

 

© 著作权归作者所有

共有 人打赏支持
idreamo
粉丝 14
博文 139
码字总数 224743
作品 0
青岛
产品经理
C Primer Plus 第11章 字符串和字符串函数 11.3 字符串输出

11.3.1 puts( )函数 puts( )函数的使用很简单,只需要给出字符串参数的地址。程序清单11.8列出了输出字符串的多种方式。 程序清单11.8 put_out.c程序 输出如下: 注意,每个字符串都单行显示...

idreamo
2016/08/19
11
0
C Primer Plus(5版)第8章习题讲解(三)

小伙伴们,对C语言编程有疑问的,可以加微信交流:poo_poo或者扫描我的头像,验证时请注明是“知友” 第8章的复习题还剩下6、7、8三题没有讲解了。本文讲下第6、8题,第7题先不讲了。 1. 第6...

石家的鱼
2017/07/11
0
0
C Primer Plus 第11章 11.13 编程练习答案

1、设计并测试一个函数,可以从输入读取n个字符(包括空格、制表符和换行符),把结果存储在一个数组中,这个数组的地址通过参数来传递。 2、修改并测试练习1中的函数,使得可以在n个字符后,...

idreamo
2016/09/22
388
0
[编程语言]C陷阱与缺陷

内容摘要 作者以自己1985年在Bell实验室时发表的一篇论文为基础,结合自己的工作经验扩展成为这本对C程序员具有珍贵价值的经典著作。写作本书的出发点不是要批判C语言,而是要帮助C程序员绕过...

21gprs
2014/05/23
0
0
#define 中的“ # 运算符”和“ ## 运算符”

利用宏参数创建字符串:# 运算符 在类函数宏(function-like macro)的替换部分中,“#”符号用作一个预处理运算符,它可以把语言符号(token)转化为字符串。例如,如果 x 是一个宏参量,那...

TMDJoJo
2012/07/07
0
0

没有更多内容

加载失败,请刷新页面

加载更多

day96-20180923-英语流利阅读-待学习

英国王子也不看好人工智能,理由却和霍金不同 Daniel 2018-09-23 1.今日导读 2016 年 3 月 9 日至 15 日,世界围棋冠军李世石与谷歌研发的计算机围棋程序 AlphaGo 进行人机大战并以 1 比 4 ...

飞鱼说编程
42分钟前
1
0
今天在码云遇到一个很有意思的人 for Per.js

今天在码云遇到一个很有意思的人,他在我的Per.js项目下面评论了一句,大意为“你试试这句代码,看看速度到底是你快还是Vue快”【当然,这个评论被我手残不小心删掉了...】。 然后我就试了,...

Skyogo
47分钟前
24
0
Java -------- 首字母相关排序总结

Java 字符串数组首字母排序 字符串数组按首字母排序:(区分大小写) String[] strings = new String[]{"ba","aa","CC","Ba","DD","ee","dd"}; Arrays.sort(strings); for (int i ...

切切歆语
49分钟前
2
0
还在用 Git 的 -f 参数强推仓库,你这是在作死!

最近,美国一个程序员因为同事不写注释,代码不规范,最严重的是天天使用 git push -f 参数强行覆盖仓库,该程序员忍无可忍向四名同事开抢,其中一人情况危急!!! 不写注释、代码不规范是一...

红薯
今天
466
0
NPM报错终极大法

所有的错误基本上都跟node的版本相关 直接删除系统中的node 重新安装 sudo rm -rf /usr/local/{bin/{node,npm},lib/node_modules/npm,lib/node,share/man/*/node.*} 重新安装 $ n lts$ npm...

lilugirl
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部