!!!教你如何搞懂字符串函数(详细,后期会讲函数栈帧)(中)

简介: !!!教你如何搞懂字符串函数(详细,后期会讲函数栈帧)(上)

3.目标空间必须足够大,以确保能存放源字符串。

因为超过的话会越界导致栈溢出

4. 目标空间必须可变。

为什么会出现非法访问?

因为"hello"是个常量字符串,我们不能对他赋值和修改

5.学会模拟实现

strcat

1.源字符串必须以 '\0' 结束。(类似,就不描述了)

2.目标空间必须有足够的大,能容纳下源字符串的内容。(类似,就不描述了)

3.目标空间必须可修改。(类似,就不描述了)

4.字符串自己给自己追加,如何?

   我们试一下

   

但是为什么vs2019的库里可以,因为每个编译器封装的函数不一样,底层实现不一样

5.学会模拟实现

strcmp

切记,字符串比较的话不是比较长度而是比较两两字符的大小,有一个大或小于或者等于就返回

学会模拟实现

strncpy

1.拷贝num个字符从源字符串到目标空间。

2. 如果源字符串的长度小于num,则拷贝完源字符串之后,在目标的后边追加0,直到num个

   想一想strncpy与strncp有什么优缺点?

    strncpy相较于strcpy,在拷贝字符的时候更加精确,且不容易出错

    但是他在一些特定场合时的执行效率比较低,因为封装的函数的代码更加复杂

    导致效率会降低;

strncat

思考一下strncat与strcat有什么区别

1.

2.strncat相较于strcat追加的字符可以控制,也就说更加精确,但是执 行 效率相较于strcat低了。

3.学会模拟实现

strncmp

1.思考一下strncmp与strcmp有什么区别

strncmp相较于strcmp,在拷贝字符的时候更加精确,且不容易出错但是他在一些特定场合时的执行效率比较低,因为封装的函数的代码更加复杂

2.学会模拟实现

3.利用字符串比较可以查找对应字符

strstr

1.字符串查找

2.学会模拟实现

strtok

char * strtok ( char * str, const char * sep );

相关文章
二维坐标系空间变换(详细解读,附MATLAB代码)
二维坐标系空间变换(详细解读,附MATLAB代码)
1645 0
二维坐标系空间变换(详细解读,附MATLAB代码)
|
11月前
|
存储 编译器 程序员
【C语言】内存布局大揭秘 ! -《堆、栈和你从未听说过的内存角落》
在C语言中,内存布局是程序运行时非常重要的概念。内存布局直接影响程序的性能、稳定性和安全性。理解C程序的内存布局,有助于编写更高效和可靠的代码。本文将详细介绍C程序的内存布局,包括代码段、数据段、堆、栈等部分,并提供相关的示例和应用。
402 5
【C语言】内存布局大揭秘 ! -《堆、栈和你从未听说过的内存角落》
|
Web App开发 移动开发 前端开发
H5微信外支付(移动端浏览器)
H5微信外支付(移动端浏览器)
495 1
 H5微信外支付(移动端浏览器)
|
数据可视化 算法 计算机视觉
什么是傅里叶变换?傅里叶变换处理图像的原理是什么?
傅里叶变换是一种强大的数学工具,能够将信号在时域与频域之间进行转换,广泛应用于物理学、信号处理、图像处理等领域。它能够将复杂信号分解为多个简单的正弦波,从而便于分析和处理。在图像处理中,傅里叶变换可以用于去噪、锐化和压缩等操作,通过滤波器选择性地保留或去除特定频率的信息,提高图像质量。
|
存储 索引 Python
哈希表是怎么删除元素的,能直接删除吗?
哈希表是怎么删除元素的,能直接删除吗?
286 3
|
前端开发 开发者 Docker
深入探索Docker Compose:简化多容器应用的部署
深入探索Docker Compose:简化多容器应用的部署
306 0
|
存储 程序员 数据处理
【汇编】mov和add指令、确定物理地址的方法、内存分段表示法
【汇编】mov和add指令、确定物理地址的方法、内存分段表示法
1478 1
【汇编】mov和add指令、确定物理地址的方法、内存分段表示法
|
Java 应用服务中间件 Linux
Docker 部署 SpringBoot 的两种方法,后一种一键部署超好用!
FROM:表示基础镜像,即运行环境 VOLUME /tmp创建/tmp目录并持久化到Docker数据文件夹,因为Spring Boot使用的内嵌Tomcat容器默认使用/tmp作为工作目录 ADD:拷贝文件并且
Docker 部署 SpringBoot 的两种方法,后一种一键部署超好用!
【Latex】PPT画图,导出emf格式,word插入emf文件并导出pdf,pdf裁剪并导出eps文件,latex插入eps文件
【Latex】PPT画图,导出emf格式,word插入emf文件并导出pdf,pdf裁剪并导出eps文件,latex插入eps文件
1229 0
|
存储 缓存 运维
[翻译]深入解析Windows操作系统(下)之第十章 内存管理
深入解析Windows操作系统(下)之第十章 内存管理
2929 0
[翻译]深入解析Windows操作系统(下)之第十章 内存管理