首页 > 代码库 > 字符串处理函数

字符串处理函数

 技术分享
技术分享
memcpy函数:
  • 将以 src 为起始地址处的内容复制 n 个字节到以 dest 为起始地址处的内存中去。但是memcpy函数有个限制,就是 不能出现内存重叠,否则其行为是未知的。所以使用memcpy函数的时候必须保证 不会出现内存重叠 的情况。但是基本上现在的库都会将memcpy实现的和memmove类似。

 

 技术分享
技术分享
memmove函数:
  • 功能和memcpy函数的功能相同,但是会考虑源内存空间和目的内存空间重叠的问题,若出现重叠,memmove函数会先进行处理在进行复制(先把源内存空间的内容复制到一个临时存储空间中,再将内容复制到目的内存空间中)。可见memmove函数在出现内存重叠的情况时可以保证 dest 中数据的正确,但是不能保证 src 中的数据还是正确的。

 

 技术分享
技术分享
memset函数:
  • 给一段内存空间进行赋任意值。类似功能的函数还有bzero(此函数不能赋任意值,只能清零)。

 

 技术分享
技术分享
memchr函数:
  • 扫描从以 s 为起始地址的前 n 个字节,如果出现了数值 c ,那么返回数值 c 的地址,否则返回NULL。

 

 技术分享
技术分享
memcmp函数:
  • 对 s1 和 s2 开始前 n 个字节的内存空间进行比较,如果s1==s2,则返回 0 ;如果s1>s2,则返回 大于 0 的数;如果s1<s2,则返回 小于0 的数。

 

 技术分享
技术分享
strcpy函数:
  • 将 src 内存处的内容复制到 dest 内存处。遇到 ‘\0‘ 后停止复制,而且 ‘\0‘ 也会被复制到dest 内存中去。注意,不能出现内存重叠的情况。

 

 技术分享
技术分享
strncpy函数:
  • 将 src 内存中的内容复制到 dest 内存处。遇到 ‘\0‘ 或者复制了 n 个字节后便停止,和strcpy类似,如果前 n 个字节中有 ‘\0‘ ,则 ‘\0‘ 也会复制到 dest 中去,如果前 n 个字节中没有 ‘\0’,则 strncpy 函数不会在后面追加 ‘\0‘ 。同样,strncpy函数也不能出现内存重叠的情况。

 

 技术分享
技术分享
strcat函数:
  • 将 src 中的内容追加到 dest 后面中去,在 src 中遇到 ‘\0‘ 便结束,且将 ‘\0‘ 添加到dest 后面。注意,这个函数也不会处理内存重叠的问题。

 

 技术分享
技术分享
strncat函数:
  • 将 src 中的内容追加到 dest 后面去,并且在遇到 ‘\0‘ 或者复制了 n 个字符时便停止。和strncpy函数不同,strncpy函数在复制了 n 个字节后,是不会在追加 ‘\0‘ 的,而 strncat 函数即使复制了 n 个字节,仍然会追加一个 ‘\0‘ 。

字符串处理函数