@小轮子
今天很高兴,可以来到CSDN这个平台来记录自己的代码生活,之前都是自己在电脑写笔记,敲代码,今天往后,我可以在这里分享我的学习笔记,以及经验。
今天的学习内容是:
一些关于字符串的函数
在文档中:NULL表示空指针
NUL/null均表示’\0’
1.strlen
(1)它的返回类型是size_t ==unsigned int 是无符号数
(2)int arr=“abcdef”;–strlen(arr)=6
int arr={‘a’,‘b’,‘c’,‘d’,‘e’,‘f’}–strlen(arr)=随机值
2.strcpy(arr1,arr2)–字符串拷贝函数(’\0’也会拷贝进去)
意思是将arr2的字符拷贝到arr1里面
3.strcat(arr1,arr2)追加字符串函数(不能字符串自己和自己追加,系统会崩溃,因为\0被修改,无法停止)
arr1要有足够的空间,也要有\0,
arr2也要有\0,从arr1的\0处开始追加字符
意思是将arr2的字符追加到arr1里面
4.strcmp(arr1,arr2)字符串比较函数(比较的是对应字符的ASCII码值)
若arr1>arr2,返回一个大于0 的数
若arr1=arr2,返回0
若arr1<arr2,返回一个小于0的数
5.strncpy(arr1,arr2,num)也是字符串拷贝函数,num的单位是字节
将arr2里面num个字符拷贝到arr1里面
如果arr2字符串长度小于num,则拷贝完arr2里面字符串之后,在后边追加\0,知道num个
6.strncat(arr1,arr2,num)也是字符串追加函数(将arr2里面num个字符追加到arr1里面)
追加完后会主动在后边放一个\0
如果arr2字符串的长度小于num,则只追加完arr2,再补个\0,结束追加
7.strncmp(arr1,arr2,num)比较arr1和arr2两个字符串前num个字符
8.strstr(arr1,arr2)字符串查找函数(在arr1里面查找arr2)
9.strtok(arr,p)分隔符–>(@ .) 字符串中有分隔符时使用,将字符串按照分隔符划分开来打印
strtok函数找到arr中的下一个标记,并将其用\0结尾,返回一个指向这个标记的指针(注:strtok函数会改变被操作的字符串,所以使用strtok函数切分的字符串一般都是临时拷贝的内容,并且可修改。)
10.strerror(errno)返回错误码所对应的错误信息
errno=0—No error
errno=1—Operation not peimitted
errno=2—No such file or directory
…
字符串操作函数受限于被操作对象只能是字符类型,应用不全面
1.memcpy(void* dest,const void* source,size_t num);也是拷贝函数,但不受类型限制,但是不能处理内存重叠情况
2.memmove(void* dest,const void* source,size_t num);内存重叠不重叠都可以处理
未完待续…