目录
一、引入
二、13个字符串的常用函数
总结
一、引入
在C语言中,字符串被视为字符数组的序列,以空字符\0结尾。这个空字符不是数字0,而是一个特殊的控制字符,用于标记字符串的结束。例如,声明char name[7] = {'R', 'o', 'c', 'k', 'e, 't', '\0'};创建了一个字符串"Rocket"。C编译器在初始化数组时会自动在字符串末尾添加\0。
字符串的操作是一个相对复杂的过程,但是用上C语言内部的字符串操作函数会节省很多工作,下面主要介绍13个字符串的常用函数。(全部包含在头文件string.h中)
二、13个字符串的常用函数
1.memset
函数原型:void *memset(void *buf,char ch,unsigned count)
功能:将字符ch复制到buf指向的数组前count个字符中。返回buf
2.memcpy
函数原型:void *memcpy(void *dest, const void *src, unsigned n)
功能:从src所指的内存地址拷贝n个字符到dest所指的内存地址。和strncpy不同,memcpy并不是遇到'\0'就结束,而是一定会拷贝完n个字节。返回dest。
3.memmove
函数原型:void *memmove(void *dest,const void *src,unsigned n)
功能:从 src所指的内存地址拷贝n个字符到dest 所指的内存地址,和memcpy有一点不同,memcpy 的两个参数src和dest所指的内存区间如果重叠则无法保证正确拷贝, 而memmove却可以正确拷贝。返回dest。
4.strcat
函数原型:char *strcat(char *str1,char *str2)
功能:把字符串str2接到str1后面,str1最后的'\0'被取消。返回str1。
5.strchr
函数原型:char *strchr(char *str,int ch)
功能:找出str指向的字符串中第一次出现字符ch的位置。返回指向该位置的指针,若找不到,则返回空指针。
6.strcmp
函数原型:int strcmp(char *str1,char *str2)
功能:比较两个字符串str1和str2的字典序。str1<str2,返回负数;str1=str2,返回0;str1>str2,返回正数。
7.strcpy
函数原型:char *strcpy(char *str1,char *str2)
功能:把str2指向的字符串拷贝到str1中去。返回str1。
8.strlen
函数原型:unsigned int strlen(char *str)
功能:统计字符串str中的字符个数(不包括终止符'\0')。返回字符个数。
9.strlwr
函数原型:char *strlwr(char *str)
功能:将串str中的字母转为小写字母。返回str。
10.strncat
函数原型:char *strncat(char *str1,const char *str2,unsigned count)
功能:把字符串str2指向的字符串中最多count个字符连到串str1后面,并以'\0'结尾。返回str1。
11.strncpy
函数原型:char *strncpy(char *str1,const char *str2, unsigned count)
功能:把字符串str2指向的字符串中前count个字符复制到串str1中去。返回str1。
12.strstr
函数原型:char *strstr(char *str1,char *str2)
功能:找出str2字符串在str1字符串中第一次出现的位置(不包括str2的串结束符)。返回该位置的指针,若找不到,返回空指针。
13.strupr
函数原型:char *strupr(char *str)
功能:将串str中的字母转换为大写字母。返回str。
注意:字符串的操作十分严苛,结尾必须有终止符'\0',不然以上函数可能无法正常发挥其功能。
为方便总结和对比,我汇总了一张表格:
总结
本节介绍了13个常用的字符串操作函数,正确使用可以在工作中减少很多工作量。本节到此结束,拜拜!