bcmp(比较内存内容)
表头文件:
#include <string.h>
定义函数:
int bcmp(const void *s1, const void *s2, int n);
功能说明:
bcmp()用来比较s1和s2所指的内存区间前n个字节,若n为0,则返回0。建议用memcmp取代。
bcopy(拷贝内存内容)
表头文件:
#include <string.h>
定义函数:
int bcopy(const void *src, void *dest, int n);
功能说明:
bcopy()和memcopy()一样都是用来拷贝src所指的内存内容的前n个字节到dest所指的地址,不过,参数src和dest在传给函数时是相反的未知。建议用memcopy()取代。
bzero(将一段内存内容全部清零)
表头文件:
#include <string.h>
定义函数:
int bzero(void *s, int n);
功能说明:
bzero()会将参数s所指的内存区域的前n个字节全部设置为0,相当于memset()。建议用memset取代。
ffs(在一个整型数中查找第一个值为真的位)
表头文件:
#include <string.h>
定义函数:
int ffs(int i);
功能说明:
ffs()会由低位至高位判断参数i字节中的每一位,将最先出现位的真(1)的位置返回。若返回0,即表示没有一个位的值为真,该字节值为零。
index(查找字符串中第一个出现的指定字符)
表头文件:
#include <string.h>
定义函数:
char *index(const char *s, int c);
功能说明:
index()用来找出参数s 字符串中第一个出现的参数c 地址,然后将该字符出现的地址返回。字符串结束字符(NULL)也视为字符串一部分。
memccpy(拷贝内存内容)
表头文件:
#include <string.h>
定义函数:
int memccpy(void *dest, const void *src, int c, size_t n);
功能说明:
memccpy()用来拷贝src所指的内存内容的前n个字节到dest所指的地址,与memcopy不同的是,memccpy会在复制的时候检查参数c是都出现,若是,则返回dest中值为c的下一个字节地址。返回值为0,则表示在src的前n个字节中没有值为c的字符。
memchr(在某一内存范围中查找一特定的值)
表头文件:
#include <string.h>
定义函数:
int memchr(const void *s, int c, size_t n);
功能说明:
从头开始搜索s所指的内存内容前n个字节,直到发现第一个值为c的字节,则返回指向该字节的指针。否则返回0。
memcmp(比较内存内容)
表头文件:
#include <string.h>
定义函数:
int memcmp(const void *str1, const void *str2, size_t n)
功能说明:
用来比较str1和str2所指的内存区间的前n个字节。字符串大小的比较是以ASCII码表上的顺序来决定的,此顺序亦为字符的值。memcmp首先将str1第一个字符值减去str2的第一个字符值,若差为0则呼吸音不坏选土匪组反映,若差不为0,则将差值返回。
示例代码:
#include <stdio.h>
#include <string.h>
int main()
{
char str1[15];
char str2[15];
int ret;
memcpy(str1, "abcdef", 6);
memcpy(str2, "ABCDEF", 6);
ret = memcmp(str1, str2, 5);
printf("ret = %d", ret);
return (0);
}
结果展示:
ret = 1
memcpy(拷贝内存内容)
表头文件:
#include <string.h>
定义函数:
void *memcpy(void *dest, const void *src, size_t n)
功能说明:
用来拷贝src所指的内存前n个字节到dest所指的内存上。与strcpy不同的是,memcpy会完整的复制n个字节,不会因为遇到字符串结束'\0'而结束。该函数的返回值为指向dest的指针。
示例代码:
#include <stdio.h>
#include <string.h>
int main()
{
const char src[50] = "Hello world!\nhahaha";
char dest[50];
memcpy(dest, src, strlen(src) + 1);
printf("dest = %s\n", dest);
return (0);
}
结果展示:
dest = Hello world!
hahaha
memmove(拷贝内存内容)
表头文件:
#include <string.h>
定义函数:
void *memmove(void *dest, const void *src, size_t n)
功能说明:
与memcpy不同的是,当src和dest所指的内存区域重叠时,memmove仍然可以正确地处理,不过执行效率会比使用memcpy慢一些。
memset(将一段内存空间填入某值)
表头文件:
#include <string.h>
定义函数:
void *memset(void *str, int c, size_t n)
功能说明:
将参数str所指的内存区域的前n个字节以参数c填入,然后返回指向s的指针。常用于某一数组的初始化。
示例代码:
#include <stdio.h>
#include <string.h>
int main()
{
char str[50] = "Hello world!\0hahaha";
memset(str, 'c', sizeof(str));
printf("str = %s\n", str);
return (0);
}
结果展示:
str = cccccccccccccccccccccccccccccccccccccccccccccccccc
strcasecmp(忽略大小写比较字符串)
表头文件:
#include <string.h>
定义函数:
int strcasecmp(const char *s1, const char *s2)
功能说明:
用来比较s1和s2字符串,比较时自动忽略大小写的差异。
strcat(连接两个字符串)
表头文件:
#include <string.h>
定义函数:
char *strcat(char *dest, const char *src)
功能说明:
将参数src字符串拷贝到参数dest所指的字符串的末尾。注意,使用该函数时,dest参数要有足够的空间来容纳src所指的内容。返回值为dest所指空间的首地址。
示例代码:
#include <stdio.h>
#include <string.h>
int main()
{
char src[50], dest[50];
strcpy(src, "This is source");
strcpy(dest, "This is destination");
strcat(dest, src);
printf("最终的目标字符串: |%s|", dest);
return (0);
}
结果展示:
最终的目标字符串: |This is destinationThis is source|
本文详细介绍了C语言中的几个内存操作函数,包括bcmp、bcopy、bzero、ffs、index、memccpy、memchr、memcmp、memcpy、memmove、memset,以及它们的功能、使用方法和示例。这些函数主要用于比较、拷贝、查找和填充内存区域,对于理解和操作内存具有重要意义。

284

被折叠的 条评论
为什么被折叠?



