本文共 2584 字,大约阅读时间需要 8 分钟。
<stdlib.h> 头文件中1 void *calloc(int num, int size); 在内存中动态地分配 num 个长度为 size 的连续空间,并将每一个字节都初始化为 0。所以它的结果是分配了 num*size 个字节长度的内存空间,并且每个字节的值都是0。2 void free(void *address); 该函数释放 address 所指向的内存块,释放的是动态分配的内存空间。3 void *malloc(int num); 在堆区分配一块指定大小的内存空间,用来存放数据。这块内存空间在函数执行完成后不会被初始化,它们的值是未知的。4 void *realloc(void *address, int newsize); 该函数重新分配内存,把内存扩展到 newsize。 注意:void * 类型表示未确定类型的指针。C、C++ 规定 void * 类型可以通过类型转换强制转换为任何其它类型的指针。mem系列函数(memset memcpy memmove) > memcpy、memset和memset三个函数在使用过程中,均需包含以下头文件: //在C中 #include <string.h> //在C++中 #include <cstring> 1. void memcpy ( void * dst,const void * src,size_t count) memcpy函数是C/C++中的内存拷贝函数,它的功能是从源src所指的内存地址的起始位置开始,拷贝n个字节到目标dst所指的内存地址的起始位置中。
2. void memset(void *s, int c, size_t n)
memset一般用于对内存初始化,在这里需要注意的是,memset函数是对内存的每个字节(按字节)设置成c的值, 长度为n,存放在s所指向的起始地址。
3. void* memmove(void* dest, void* src, size_t count)
它与memcpy的功能相似,都是将src所指的n个字节复制到dst所指的内存地址的起始位置,不同的是它处理了src和dst有重叠的情况。但是当目标区域与源区域没有重叠则和memcpy函数功能相同。
str函数---字符串操作
1. strcpy
strcpy是C语言的标准库函数,使用strcpy需要包含以下头文件:
#include#include 其函数功能是把从src地址开始且含有NULL结束符的字符串复制到dst开始的地址空间,返回指向dst的指针。 2. strncpy char *strncpy(char *destin, char *source, int len); 功能:将source指向的len个字符串拷到destin
3. strcat char* strcat(char * str1,char * str2); 功能: 把字符串str2接到str1后面,str1最后的'\0'被取消
4. strncat char *strncat(char *dest, const char *src, size_t maxlen) 功能: 将字符串src中前maxlen个字符连接到dest中
5. strcmp int strcmp(char * str1,char * str2); 功能: 比较两个字符串str1,str2 返回: str1<str2,返回负数;str1=str2,返回 0;str1>str2,返回正数
6. strncmp int strncmp(char *str1,char *str2,int count) 功能: 对str1和str2中的前count个字符按字典顺序比较 返回: 小于0:str1<str2,等于0:str1=str2,大于0:str1>str2
7. strchr char* strchr(char* str,char ch); 功能: 找出str指向的字符串中第一次出现字符ch的位置 返回: 返回指向该位置的指针,如找不到,则返回空指针
8. strrchr char *strrchr(const char *s, int c) 功能: 得到字符串s中最后一个含有c字符的位置指针 返回: 位置指针
9. strstr char* strstr(char* str1,char* str2); 功能:找出str2字符串在str1字符串中第一次出现的位置(不包括str2的串结束符) 返回: 返回该位置的指针,如找不到,返回空指针
10. strnset char *strnset(char *s, int ch, size_t n) 功能: 将字符串s中前n个字符设置为ch的值 返回: 指向s的指针
11. strset char *strset(char *s, int ch) 功能: 将字符串s中所有字符设置为ch的值 返回: 指向s的指针
12. strtok char *strtok(char *s1, const char *s2) 功能:分解s1字符串,用特定分隔符(s2)分隔成多个字符串 返回: 字符串s1中首次出现s2中的字符前的子字符串指针 strtok()在参数s1的字符串中发现参数s2中包涵的分割字符时,则会将该字符改为\0字符。在第一次调用时,strtok()必需给予参数s1字符串,往后的调用则将参数s1设置成 NULL。每次调用成功则返回指向被分割出片段的指针。
13. strupr char *strupr(char *s) 功能: 将字符串s中的字符变为大写
主要分为以下三点不同:
参考链接:
转载地址:http://wdtgf.baihongyu.com/