Cstring复习

发布时间 2023-05-24 08:24:22作者: alexlance

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<stdarg.h>
int main() {
const char* a = "hello world";
char b[100] = "message";
printf("%s\n", strcpy(b, a));//将a复制到b,覆盖,但是要注意b数组的长度
printf("%s\n", strcat(b, a));//连接两个字符串
printf("%d", strcmp(b, a));//比较字符串大小
return 0;
}

字符串函数的返回值:

strcpy和strcat都返回它们第一个参数的一份副本,就是一个指向目标字符数组的指针,因此嵌套使用strcpy和strcat

以上这些字符串函数主要是长度受限,下面还有一些长度不受限的字符串函数:

strncpy、strncat、strncmp:

与之前函数不同,这三个函数可以指定长度大小,和strcpy一样,strncpy也可以复制源字符串到目的字符串,但是strncpy能够指定复制长度,如果指定长度大于实际长度,则剩余部分用NULL来填充,如果指定长度小于实际长度,则只有指定长度的源字符串被复制到目的字符串,且不会以NULL结尾,这会导致strlen的结果变为随机数,同样还有strncat函数,其可以指定n个字符串到目的字符串,strncmp

可以指定n个字符串进行比较

字符串查找基础:

strchr:查找指定字符,并返回第一次出现该字符的位置,其返回类型是指针

strrchr:与strchr功能相同,但返回最后一次出现指定字符的位置,返回类型还是指针

strpbrk:查找一组字符出现的位置,还是返回类型是指针

strstr:查找指定字符串的第一次出现位置,返回类型是指针

strrstr:跟strstr类似,但是是从后往前找,返回类型是指针

高级字符串查找:

strspn:

strnspn:

字符操作:

字符分类函数: iscntrl 任何控制字符 isspace 空白字符:空格‘ ’,换页‘\f’,换行'\n',回车'\r',制表符'\t',或垂直制表符'\v' isdigit 十进制数字0~9 isxdigit 十六进制数字,包括所有十进制数字,小写字母af,大写字母AF islower 小写字母a~z isupper 大写字母A~Z isalpha 字母az或AZ isalnum 字母或数字az,AZ或0~9 ispunct 标点符号,任何不属于数字或字母的图像字符(可打印符号) isgraph 任何图像字符 isprint 任何可打印字符,包括图像字符和空白字符

字符转换函数:

tolower:将字符串转为小写

toupper:将字符串转为大写

内存操作:

内存操作函数与字符串操作函数不同,其可以处理包含NULL的字符串,也可以处理其他类型的数据,比较常用的有memset、memcmp、memcpy,memcpy的功能是将指定长度的第二个参数复制到第一个参数中,memcmp是将指定长度的两个参数进行比较,

memset将指定长度的参数赋值为相同的数值,这三个内存操作函数参数都是void类型