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