复制相关函数:memcpy、memmove、strcpy、strncpy
十年的玛沁网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。营销型网站的优势是能够根据用户设备显示端的尺寸不同,自动调整玛沁建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。成都创新互联从事“玛沁网站设计”,“玛沁网站推广”以来,每个客户项目都认真落实执行。
字符串连接函数:strcat、strncat
字符串比较函数:memcmp、strcmp、strcoll、strncmp、strxfrm、
查找函数:memchr、strchr、strcspn、strpbrk、strrchr、strspn、strstr、strtok
其他相关函数:memset、strerror、strlen
字符串连接函数:strcat
字符串复制函数:strcpy
字符串比较函数:strcmp
测字符串长度函数:strlen
string.h头文件中包含的字符串函数
void *memcpy(void *dest, const void *src, size_t n);//将n字节长的内容从一个内存地址复制到另一个地址;如果两个地址存在重叠,则最终行为未定义
void *memmove(void *dest, const void *src, size_t n);//将n字节长的内容从一个内存地址复制到另一个地址;与memcpy不同的是它可以正确作用于两个存在重叠的地址
void *memchr(const void *s, char c, size_t n);//在从s开始的n个字节内查找c第一次出现的地址并返回,若未找到则返回NULL
int memcmp(const void *s1, const void *s2, size_t n);//对从两个内存地址开始的n个字符进行比较
void *memset(void *, int, size_t);//用某种字节内容覆写一段内存空间
char *strcat(char *dest, const char *src);//在字符串dest之后连接上src
char *strncat(char *dest, const char *src, size_t n);//从src截取n个字符连接在字符串dest之后,返回dest字符串
char *strchr(const char* str, int ch);//从字符串str头开始查找字符ch首次出现的位置
char *strrchr(const char* str,int ch);//从字符串str尾开始查找字符ch首次出现的位置
int strcmp(const char *, const char *);//基于字典顺序比较两个字符串
int strncmp(const char *, const char *, size_t);//基于字典顺序比较两个字符串,最多比较n个字节
int strcoll(const char *, const char *);//基于当前区域设置的字符顺序比较两个字符串
char *strcpy(char* str1, const char* str2);//将str2拷贝给str1
char *strncpy(char* str1, const char* str2, size_t n);//截取str2的n个字符拷贝给str1
char *strerror(int);//返回错误码对应的解释字符串,参见errno.h(非线程安全函数)
size_t strlen(const char *);//返回一个字符串的长度
size_t strspn(const char *s, const char *strCharSet);//从字符串s的起始处开始,寻找第一个不出现在strCharSet中的字符,返回其位置索引值。换句话说,返回从字符串s的起始位置的完全由strCharSet中的字符构成的子串的最大长度。strspn为string span的缩写。不支持多字节字符集。
size_t strcspn(const char *s, const char *strCharSet);//从字符串s的起始处开始,寻找第一个出现在strCharSet中的字符,返回其位置索引值。换句话说,返回从字符串s的起始位置的完全由不属于strCharSet中的字符构成的子串的最大长度。strcspn为string complement span的缩写。不支持多字节字符集。
char *strpbrk(const char *s, const char *strCharSet);//在字符串s中查找strCharSet中任意字符第一次出现的位置的指针值。strpbrk为string pointer break缩写。不支持多字节字符集。
char *strstr(const char *haystack, const char *needle);//在字符串haystack中查找字符串needle第一次出现的位置,heystack的长度必须长于needle
char *strtok(char *strToken, const char *strDelimit );//将一个字符串strToken依据分界符(delimiter)分隔成一系列字符串。此函数非线程安全,且不可重入;但MSVC实现时使用了thread-local static variable因而是线程安全的单仍然是不可重入,即在单线程中不能对两个源字符串交替调用该函数来分析token,应当对一个字符串分析完成后再处理别的字符串。
size_t strxfrm(char *dest, const char *src, size_t n);//根据当前locale转换一个字符串为strcmp使用的内部格式
首先要明白,sizeof不是函数,而是操作符;strlen是函数。
操作符sizeof用来判断对象、类型所占用的内存空间的字节数,strlen是计算一个字符串以字节计的长度。如:sizeof(int)、sizeof(double)、sizeof(char)等是合法的,可以计算出int、double、char这些类型所占用的字节数分别是4、8、1,而用strlen则是非法的。再如:若有char
a[20]="123";,那么,strlen(a)的结果是3,而sizeof(a)的结果是20;前者是字符串“123”的长度,后者是为数组a分配的内存空间。还有:当计算一个指向字符串的指针时,sizeof得到的是指针本身的长度即固定为4(32位机),而strlen得到的是指针指向的字符串的长度。如:char
a[20]="1234567",*p=a;,则,sizeof(p)=4,而strlen(p)=7。似乎复杂了点。记住一个原则就好判断:操作符sizeof用来计算系统为对象本身分配的空间(以字节计),函数strlen用来计算字符串的长度(以字节计)。
1)字符串操作
strcpy(p,
p1)
复制字符串
strncpy(p,
p1,
n)
复制指定长度字符串
strcat(p,
p1)
附加字符串
strncat(p,
p1,
n)
附加指定长度字符串
strlen(p)
取字符串长度
strcmp(p,
p1)
比较字符串
strcasecmp忽略大小写比较字符串
strncmp(p,
p1,
n)
比较指定长度字符串
strchr(p,
c)
在字符串中查找指定字符
strrchr(p,
c)
在字符串中反向查找
strstr(p,
p1)
查找字符串
strpbrk(p,
p1)
以目标字符串的所有字符作为集合,在当前字符串查找该集合的任一元素
strspn(p,
p1)
以目标字符串的所有字符作为集合,在当前字符串查找不属于该集合的任一元素的偏移
strcspn(p,
p1)
以目标字符串的所有字符作为集合,在当前字符串查找属于该集合的任一元素的偏移
*
具有指定长度的字符串处理函数在已处理的字符串之后填补零结尾符
2)字符串到数值类型的转换
strtod(p,
ppend)
从字符串
p
中转换
double
类型数值,并将后续的字符串指针存储到
ppend
指向的
char*
类型存储。
strtol(p,
ppend,
base)
从字符串
p
中转换
long
类型整型数值,base
显式设置转换的整型进制,设置为
以根据特定格式判断所用进制,0x,
0X
前缀以解释为十六进制格式整型,0
前缀以解释为八进制格式整型
atoi(p)
字符串转换到
int
整型
atof(p)
字符串转换到
double
符点数
atol(p)
字符串转换到
long
整型
3)字符检查
isalpha()
检查是否为字母字符
isupper()
检查是否为大写字母字符
islower()
检查是否为小写字母字符
isdigit()
检查是否为数字
isxdigit()
检查是否为十六进制数字表示的有效字符
isspace()
检查是否为空格类型字符
iscntrl()
检查是否为控制字符
ispunct()
检查是否为标点符号
isalnum()
检查是否为字母和数字
isprint()
检查是否是可打印字符
isgraph()
检查是否是图形字符,等效于
isalnum()
|
ispunct()