函数概述 | c和c++使用的内存拷贝函数; |
函数原型 | void *memcpy(void *dest, const void *src, size_t n); |
函数功能 | 从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址的起始位置中 |
所需头文件 | C语言中使用#include <string.h>; C++中使用#include <cstring>和#include <string.h>都可以。前者只是为了凸显C++风格。 |
返回值 | 函数返回指向dest的指针。 |
函数概述 | 初始化内存空间 |
函数原型 | void *memset(void *s, int ch, size_t n); |
函数功能 | 将已开辟内存空间 s 的首 n 个字节的值设为值 ch。 |
所需头文件 | <memory.h> or <string.h> memset |
返回值 | 返回指向s的指针 |
函数原型 | char *strcpy(char* dest, const char *src); |
函数功能 | 把从src地址开始且含有NULL结束符的字符串复制到以dest开始的地址空间 |
说明 | src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串 |
所需头文件 | #include <string.h> |
返回值 | 返回指向dest的指针 |
函数原型 | int strcmp(const char *s1,const char * s2); |
函数功能 | 比较字符串s1和s2 |
说明 | 两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇'\0'为止。如: "A"<"B" "a">"A" "computer">"compare" 特别注意:strcmp(const char *s1,const char * s2)这里面只能比较字符串,不能比较数字等其他形式的参数。 |
所需头文件 | #include <string.h> |
返回值 | 当s1<s2时,返回为负数 注意不是-1 当s1==s2时,返回值= 0 当s1>s2时,返回正数 注意不是1 |
函数原型 | int strncmp(char *str1, char *str2, int maxlen); |
函数功能 | 这个函数用来比较s1和s2字符串,这个函数将返回一个值 |
说明 | 此函数功能即比较字符串str1和str2的前maxlen个字符。 |
所需头文件 | #include <string.h> |
返回值 | 如果前maxlen字节完全相等,返回值就=0;在前maxlen字节比较过程中,如果出现str1[n]与str2[n]不等,则返回(str1[n]-str2[n])。 |
函数原型 | char *strstr(const char *str1, const char *str2); |
函数功能 | 从字符串str1中查找是否有字符串str2,如果有,从str1中的str2位置起,返回str1中str2起始位置的指针,如果没有,返回null。 |
说明 | str1: 被查找目标 string expression to search. str2: 要查找对象 The string expression to find. |
所需头文件 | #include <string.h> |
返回值 | 从str1中的str2位置起,返回str1中str2起始位置的指针,如果没有,返回null。 |
函数原型 | char *strchr(const char* _Str,int _Val) |
函数功能 | 查找字符串s中首次出现字符c的位置 |
说明 | 返回首次出现c的位置的指针 |
所需头文件 | #include <string.h> |
返回值 | 返回的地址是字符串在内存中随机分配的地址再加上你所搜索的字符在字符串位置,如果s中不存在c则返回NULL。 |
函数原型 | char *strtok(char s[], const char *delim); |
函数功能 | 分解字符串为一组字符串。s为要分解的字符串,delim为分隔符字符串。 |
说明 | strtok()用来将字符串分割成一个个片段。参数s指向欲分割的字符串,参数delim则为分割字符串中包含的所有字符。当strtok()在参数s的字符串中发现参数delim中包含的分割字符时,则会将该字符改为\0 字符。在第一次调用时,strtok()必需给予参数s字符串,往后的调用则将参数s设置成NULL。每次调用成功则返回指向被分割出片段的指针。 |
所需头文件 | #include <string.h> |
返回值 | 从s开头开始的一个个被分割的串。当查找不到delim中的字符时,返回NULL。 所有delim中包含的字符都会被滤掉,并将被滤掉的地方设为一处分割的节点。 |
函数原型 | long int strtol(const char *nptr,char **endptr,int base); |
函数功能 | 将参数nptr字符串根据参数base来转换成长整型数。 |
说明 | 一开始strtol()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,再遇到非数字或字符串结束时('\0')结束转换,并将结果返回 |
所需头文件 | #include <string.h> |
返回值 | 若参数endptr不为NULL,则会将遇到不合条件而终止的nptr中的字符指针由endptr返回;若参数endptr为NULL,则会不返回非法字符串。 |