1.memchr()
原型:void memchr(const void str, int c, size_t n)
作用:在str的前n个字节中寻找c
返回值:一个指向匹配字节的指针 否则空指针(第一个匹配的值的指针)
2.strchr()
原型:charstrchr(const char*s,int c)
返回值:匹配字节的指针
区别:memchr检测的是一段内存,strchr检测的是一个字符串 如果一段内存中有0x0的话,不能用strchr去查找的,因为遇到0x0会当作字符串的结束符停止。而mem是根据后面的n停止。
#include<stdio.h>
#include<string.h>
int main()
{
char *p1,*p2;
char ch[]={"Nthing is impossible,Believe yourself!"};
p1=(char*)memchr(ch,'i',strlen(ch));
p2=strchr(ch,'i');
printf("Memchr()搜索i:%s\n strhr()搜索i:%s",p1,p2);
return 0;
}
运行结果:
Memchr()搜索i:ing is impossible,Believe yourself!
strhr()搜索i:ing is impossible,Believe yourself!
结果两者一样。
3.memcpy()
原型:void *memcpy(void *destin, void *source, unsigned n);
功能:从源source所指的内存地址的起始位置开始拷贝n个字节到目标destin所指的内存地址的起始位置中。
返回值:指向存储区的指针
4.strcpy()
原型:char strcpy(char dest, const char *src);
返回值:指向dest的指针
memcpy(b,a,sizeof(int)*k);//数组
strcpy(b,a); //字符串
memcpy()与strcpy()
1、复制的内容不同。strcpy只能复制字符串,而memcpy可以复制任意内容,例如字符数组、整型、结构体、类等。
2、复制的方法不同。strcpy不需要指定长度,它遇到被复制字符的串结束符"\0"才结束,所以容易溢出。memcpy则是根据其第3个参数决定复制的长度。
3、用途不同。通常在复制字符串时用strcpy,而需要复制其他类型数据时则一般用memcpy
5.memset()
原型:void *memset(void *s, int ch, size_t n);
功能:将s中当前位置后面的n个字节 (typedef unsigned int size_t )用 ch 替换并返回 s 。
char a[50];
memset(a,0,sizeof(char)*50);//将a内元素初始化为0
6.strcat()
原型:char *strcat(char *de, const char *str)
功能:将str字符串添加在de后方
7.strncat()
原型:char *strncat(char *dest, const char *src, size_t n)
strcat函数无法检验第一个数组能否容纳第二个字符串 于是提供了strncat()函数
例如strncat(a,b,10);则把b中的10个元素加入a并添加\0;
来源:CSDN
作者:Peterwatwec
链接:https://blog.csdn.net/Peterwatwec/article/details/104535119