一.内存拷贝函数
void* memcpy(voidr* s1,const void* s2,size_t n);
该函数返回拷贝后的指针。比如说,它可以将一个字符数组缓冲区的内容拷贝到另一个缓冲区中,
size_t n可以使用sizeof进行得到。
memmove(void *s1,const void* s2,size_t n);
如果目标区域和源区域有重叠的话,memmove() 能够保证源串在被覆盖之前将重叠区域的字节拷贝到目标区域中,复制后源区域的内容会被更改。如果目标区域与源区域没有重叠,则和 memcpy() 函数功能相同。
void* memset(void* dest, int c,size_t n);
该函数将dest的前n个字符用字符c覆盖,常见的用法是申请一段数组内存,然后用‘\0’覆盖掉
二.字符串mem开头处理函数
memchr(void* str,int c,size_t n);
该函数将查找字符串str前n个字节中字符c第一次出现的位置,返回查找到的指针,失败返回null.
int memcmp(const void* str1,const void* str2,size_t n);
该函数比较str1和str2前n个字节的大小,如果str1>str2,返回1,如果str1<str2,返回-1,如果str1==str2,返回0.
三.字符串str开头函数
char* strcat(char* str1,const char* str2);
char* strncat(char* str1,char* str2,size_t n);
该函数将str2拼接到str1中,参数n代表要拼接的str2中字符数量。
注意,strcat在win中vs2017中会有不安全函数提示,导致运行失败,需要在第一行添加#pragma warning (disable:4996) ,要注意的是拼接后他是没有空格隔开的。
char* strchr(const char* str1,int c);
//查找字符c在字符串str1中首次出现的位置
char* strrchr(const char* str1,int c);
//查找字符c在str1中最后一次出现的位置
char* strcmp(const char* str1,const char* str2);
//比较两个字符串大小
char* strncmp(const char* str1,const char* str2,size_t n);
//比较两个字符串前n个字节的大小
char* strcpy(char* str1,const char* str2);
//将str2复制到str1末尾
char* strncpy(char* str1,const char* str2,size_t n);
//复制str2中n个字节到str1中
size_t strlen(char* str1);
得到str1的字符大小,不包含\0
char* strstr(const char* str1,const char* str2);
//字符串匹配函数,查找str1中字符串str2首次出现的位置
char* strpbrk(const char* str1,const char* str2);
//遍历str1中每个字符,当字符在str2中也包含时,停止并返回字符在str1中位置
size_t strspn(const char* str1,const char* str2)
//检索字符串str1中首个不存在于str2中的字符
size_t strcspn(char* str1,char* str2);
//在str1开头中有几个字符不在str2中,返回个数
char* strerror(int errornum);
//这个返回内部错误号的一个字符串,可以用来输出错误信息。
char *strtok(char *str, const char *delim)
分解字符串 str 为一组字符串,delim 为分隔符。size_t strxfrm(char *dest, const char *src, size_t n)
根据程序当前的区域选项中的 LC_COLLATE 来转换字符串 src 的前 n 个字符,并把它们放置在字符串 dest 中。
四.stdio中的输入输出函数总结
C 标准库 – <stdio.h> | 菜鸟教程 (runoob.com)
菜鸟教程比较全面