第九章 字符串,字符和字节

1.NUL字节是字符串终止符,但它本身并不是字符串的一部分,所以字符串的长度并不包括NUL字节。

 

2.size_t这个类型是在头文件stddef.h中定义的,返回长度。

 

3.连接字符串:strcat

strcpy(message,"hello");
strcat(message,customer_name);
strcat(message,",how are you?");

hello,how are you?

strcat(strcpy(dat,a),b);

ab

 

4.字符串比较(字典比较):比较ASCII码大小   strcmp

 

5.NUL相当于‘\0’,结束字符串,前者为字符常量的名字,后者相当于是字符串常量

 

   NULL在stddef.h中专门为空指针定义的一个宏(void *)0

 

6.strlen不包含'\0',strcpy会把'\0'复制过去。

strlen返回字符串长度时,不会把字符串长度返回过去。

 

7.长度受限的字符串函数:strncpy.......char *strncpy(char *dst, char const *src, size_t len)  向dst中写入len个字符,如果被复制字符串小于len个字符,则将用NUL补充至len个。如果大于或等于,结果不会有NUL所以需要自己加上‘\0’。

                                         

                                         strncat.......char *strncat(char *dst, char *src,size_t len)总是在结果字符串后面添加NUL字节,而且它不会像strncpy那样对目标数组用NUL字节进行填充。

 

                                         strncmp........int strncmp(char const *s1,char const *s2, char const *s3)只对前len个进行比较。

 

8.字符串查找:

查找一个字符:strchr,strrchr                         查找任何几个字符:strpbrk

 

查找一个子串:strstr                                     查找一个字符串前缀:strspn,strcspn

 

查找标记:strtok                                           错误信息:strerror

 

字符转换:tolower,toupper                           内存操作:memcpy(复制),memchr(查找),memset(设置(初始化等))

 

字符串分类:iscnstrl.....

 

9.在使用strcpy和strcat时要考虑容器够大,否则会溢出。

 

posted @ 2018-01-28 23:45  Hk_Mayfly  阅读(224)  评论(0编辑  收藏  举报