2024年6月2日发(作者:)

C标准库源码解剖(4):字符串处理函数string.h

和wchar.h

简要介绍资料的主要内容,以获得更多的关注

C标准库源码解剖(4):字符串处理函数string.h和wchar.h

分类: C 20XX年-10-08 12:39 648人阅读 评论(1) 收藏 举报

string.h中包含了所有的字符串处理函数,也包含了内存处理函数,

因为这些内存处理函数(如比如、复制、搜索)的功能与字符串处理函数

功能类似。我们是用通用指针来指向内存块的,通用指针可以用char*类

型(传统C语言),也可以用void*类型(标准C语言)。每个函数都有对

应的宽字符版本,在wchar.h中。

string.h中包含的标准库函数:

strcat,strncat,strcmp,strncmp,strcpy,strncpy,strlen,strchr,strrchr,strspn,strcsp

n,strpbrk, strstr,strok,strcoll,strxfrm,strerror;

memcpy,memmove,memcmp,memchr,memeset。GNU还提供了很多非标

准的扩展,如memccpy,rawmemchr,memrchr, strdup,strndup等。 view

plaincopy to clipboardprint? 1. /* ISO C99 Standard: 7.21 字符串处理

string.h */

2. #ifndef _STRING_H

3. #define _STRING_H 1

4. #include features.h /* 非标准头文件,定义了一些编译选项 */

5. __BEGIN_DECLS

6. /* 从stddef.h中获得size_t和NULL */

7. #define __need_size_t

8. #define __need_NULL

9. #include stddef.h

10. __BEGIN_*****CE_STD

11. /* 从SRC中复制N个字节的内容到DEST中 */

12. extern void *memcpy (void *__restrict __dest,

13. __const void *__restrict __src, size_t __n)

14. __THROW __nonnull ((1, 2));

15. /* 从SRC中复制N个字节的内容到DEST中,保证对重叠字符串

(即SRC与DEST共用存储空间)有正确的行为 */

16. extern void *memmove (void *__dest, __const void *__src, size_t

__n)

17. __THROW __nonnull ((1, 2));

18. __END_*****CE_STD

19. /* 从SRC中复制不超过N个字节的内容到DEST中,当遇到字符

C返回DEST中C的拷贝后面的字符指针。

20. 如果在SRC的前面N个字节中没有发现字符C,则返回NULL */

简要介绍资料的主要内容,以获得更多的关注