文章目录
strlen,求字符串的长度,size_t
size_t是自己定义的一种类型,是已知类型的别名,具体要看头文件中是怎么定义的
在C语言中,size_t 是无符号整数类型,通常用于表示内存中对象的大小或索引。它的大小通常足以容纳系统中最大可能的对象大小。在不同系统中,size_t 的大小可能会有所不同,但它通常被设计为能够表示系统中最大可能的对象大小。
https://blog.csdn.net/qq_18671415/article/details/105989100
自己写的返回值为int,不严谨,要写成size_t
长度不受限制,不管目的地能不能放下,遇到’\0’才停止,不安全
strcpy(目的地,源) 字符串拷贝,把源拷贝到目的地,返回目的地的起始位置,会将源字符串的’\0’拷贝到目标空间
dest++=src++会将src(即\0)复制到dest所指向的位置,然后递增src和dest的指针位置,指向字符串的下一个字符。
由于在这种情况下src为\0,这个字符会被复制到dest,然后递增操作符会发生,导致src和dest的指针位置都向后移动一位,然后while循环结束。
strcat(目的地,源),字符串追加,在字符串后面追加一个字符串,从目的地的\0处开始追加,直到遇到源字符串的\0追加结束,源字符串\0也追加过去
找到目的地\0的位置,从这个位置开始向后追加。目标空间必须有\0
自己实现
strcmp(str1,str2) 字符串比较,str1>str2返回大于0的一个数,str1==str2返回0,str1《str2返回小于0的一个数
字符’\0’: ASCII 码为0,表示一个字符串结束的标志
长度受限制
strncpy(目的地,源,count)字符串拷贝。源的字符个数《count,多的补0,源的字符个数==count,就拷贝count个,不会把’\0’拷贝过去,源的字符个数》count,就拷贝count个。不够的补0,不拷贝’\0’
strncat(目的地,源),字符串最追加。找到目的地的’\0’,从这管理开始追加,源字符串》count,则追加count个字符,在额外追加一个’\0’,源字符串<=count,则追加源字符串的字符,并把源字符串的’\0’也追加进去
strncmp 字符串比较
strstr(p1,p2) 查找字符串,找子串,NULL,NUL,Null.在p1中找有没有p2这个字符串,有,返回第一次出现的位置,没有返回空指针
自己实现
优化一下
strtok(str,sep) 按指定字符分割。str是包含了0个或多个由sep中的0个或多个字符的串,然后按着标记分割
tech输出完,在查找就返回空指针了
strerror
errno
字符分类函数
iscntrl isspace isdigit islower isupper iscntrl issapce isalpha isalnum ispunct isgraph isprint
字符转换 tolower toupper
putchar打印字符
大写转小写
内存函数
memcpy 内存拷贝,放在内存中的数据都可以拷贝
结构体中字符数组赋值
实现memcpy
memmove可以处理重叠也可以处理不重叠
实现memmove
dest在src前面,从前往后拷贝
dest在src和src+count之间,从后往前拷贝
dest在src之后,从后往前,从前往后都没有关系
vs使用memcpy发现可以处理重叠的内存 ,这是编译器优化了
自己实现memmove
memcmp
memset 内存设置