《C primer plus》第四章知识点

本文介绍了C语言中字符串的存储方式,强调了字符数组与字符串的关系,以及使用%s格式标识符打印和读取字符串的方法。还讨论了scanf函数的使用细节,包括如何处理空格和使用指针。此外,提到了strlen()函数计算字符串长度,以及常量的定义方法,包括#define和const修饰符。最后,简要概述了printf和scanf函数的转换说明符、修饰符及其返回值。
摘要由CSDN通过智能技术生成

第4章:

1:C没有为字符串定义专门的变量类型,而是存储在char数组中。char数组每个元素占用1个字节,可以存放一个字符值。

若定义一个 char name[40]; 该数组有40个元素,元素下标从0开始。末尾第39个元素的值是\0,这个字符代表空字符,标记字符串的结束,是非打印字符。意味着一个40个元素的字符数组只能存储39个有效字符。空字符是隐式的,不需要人为添加。每个元素类型是char类型。

2:%s格式标识符用来打印字符串(字符数组也可称为字符串)。

3:scanf函数键入变量时,需要&变量指向该变量的地址。而char数组不需要。

scanf(“%d”,&num);  //读取十进制数据存入num变量的地址

Scanf(“%s”,name); //读取字符串存入name字符数组。

可以看到,char name [40];的数组名name其实就是地址。

一个数组的数组名其指向的是数组第一个元素的首地址。

4:scanf函数用%s读取字符串时,不会读取空白字符空格,制表符,换行符。意味着输入 hello world后,name只会存储hello。

后续会用gets()函数处理一般的空格字符串。

5:字符串和字符的区别在于字符串属于派生类型(char数组),字符属于基本类型(char类型)。

字符串 “x” 等同于 x \0,占用2个字节,

字符 ‘x’等同于x, 占用1个字节。

6:strlen()函数以字符为单位给出字符串的长度。使用该函数需要用string.h头文件。语法用法和sizeof相同。注意,返回的是有效字符的个数。

7:常量的定义:#define 常量名(大写) 值

通常写在文件的顶部。

另一种写法是#define  c_常量名(小写) 值 或

#define k_常量名(小写) 值。

8:#define语句也可以用于定义字符和字符串常量。

9:另一种定义是用const修饰符去定义常量。

语法: const 数据类型 变量名 = 值;

const的作用是修饰一个变量为只读,不可修改其值。该方法比#define更灵活。

10:头文件limits.h和float.h 定义了整数类型和浮点数类型的大小限制的详细信息,定义了每个类型的最大值和最小值常量。具体使用参考相关说明。

11:一些关于printf函数的格式说明符。

 

12:printf()的转换说明修饰符:

 

可以在%和定义转换字符之间通过插入修饰符对基本的转换说明加以修改。

13:printf()的标志

 

 

14:printf()函数的返回值有两种,如果输出正确,返回所打印的字符的数目,如果有输出错误,printf()会返回一个负数。

该功能多用于检查文件输入是否正确。

15:scanf()的转换说明符

 

16:scanf()的转换修饰符

 

17:scanf()的返回值也有两种。正确返回读入项目的个数,如果没有读取任何东西或者输入了非数字字符串,scanf()会返回0,当检测到EOF后,返回EOF。C设定EOF值为-1。EOF用来检测文件结尾。

18:printf()的*修饰符用来显示字段宽度。其作用可打印对其的列式输出。

scanf()的*修饰符可以跳过当前的键入。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值