字符函数和字符串函数(C语言)(1,2,3)

字符函数和字符串函数(C语言)(1,2,3)
注意:
字符串在C语言中的特性:
字符函数和字符串函数(C语言)(1,2,3)
函数介绍:
字符函数和字符串函数(C语言)(1,2,3)
1.strlen字符串长度
计算字符串的长度
统计字符串'\0'前的字符个数
字符函数和字符串函数(C语言)(1,2,3)
strlen函数的使用
使用要点:
1.函数的实际参数是地址
2.计算’\0‘前的字符个数,‘\0’不算字符串内容,不计算
3.函数的返回值是无符号数
字符函数和字符串函数(C语言)(1,2,3)
“”双引号引出字符串内容
默认加上了'\0'结束标志
而单引号引出单个字符,无结束标志'\0'
当使用''单引号时strlen函数将一直往后找,直到找到'\0'时,统计'\0'之前的字符个属于
字符函数和字符串函数(C语言)(1,2,3)
经典题型:(小心被坑)
strlen函数返回的是无符号数
3-6=-3
负数的补码看做是无符号数那将特别大
字符函数和字符串函数(C语言)(1,2,3)
***strlen函数的模拟实现方式
因为字符地址不被改变
可以修改为const char* str
1.创建临时变量计数器
字符函数和字符串函数(C语言)(1,2,3)
2.函数的递归(不能创建临时变量,求字符串长度)
字符函数和字符串函数(C语言)(1,2,3)
3.指针
字符函数和字符串函数(C语言)(1,2,3)
2.strcpy字符串拷贝函数
将一个字符串拷贝到另一个字符串中
字符函数和字符串函数(C语言)(1,2,3)
strcpy函数的使用
使用要点:
1.arr1目的地,arr2源头意思是将arr2中的内容拷贝放到arr1中
2.'\0'也会拷贝
3.h被w替代,e被o替代.......
字符函数和字符串函数(C语言)(1,2,3)
***strcpy函数的模拟实现方式
指针
字符函数和字符串函数(C语言)(1,2,3)
代码改良:
1.1代
字符函数和字符串函数(C语言)(1,2,3)
2.2代
先后置++,在与*结合
发现:先两个字符赋值,赋值后地址+1,跳到下一字符,在根据赋值后的结果充当判断条件,如果赋值0,destination将变为0,不符合循环条件,将跳出循环
{;}为空语句
返回目的空间的起始地址
字符函数和字符串函数(C语言)(1,2,3)
推荐2代
注意:
1.原字符串中必须包含'\0',否则将会越界访问,导致出错
字符函数和字符串函数(C语言)(1,2,3)
2.目标空间足够大以至于存的下我的字符串,否则也会越界
字符函数和字符串函数(C语言)(1,2,3)
3.目标空间必须可修改,不是常量字符串,常量字符串不可修改
字符函数和字符串函数(C语言)(1,2,3)
3.strcat字符串追加
在一个字符串后追加一个字符串
字符函数和字符串函数(C语言)(1,2,3)
strcat函数的使用
将arr1的内容追加到arr2中
字符函数和字符串函数(C语言)(1,2,3)
使用要点:
1.目标空间足够大以至于存的下我的字符串,否则也会越界
字符函数和字符串函数(C语言)(1,2,3)
2.两个字符串都必须包含'\0'
目的地字符串中必须包含'\0',说明我从'\0'处开始追加
源头地字符串中必须包含'\0',说明我追加结束了
最后也会将'\0'追加到目的地中
字符函数和字符串函数(C语言)(1,2,3)
3.不能自己给自己追加字符串,程序会崩溃
字符函数和字符串函数(C语言)(1,2,3)
为什么不能自己给自己追加?
内容被修改,源头处的'\0'被覆盖,没有'\0'了,会导致死循环,代码会崩溃
代码实现strcat函数:
字符函数和字符串函数(C语言)(1,2,3)
代码优化:
字符函数和字符串函数(C语言)(1,2,3)

上一篇:2021-03-08


下一篇:我的第21个代码