strcat函数

news/2024/12/22 22:01:59/

目录

函数介绍:

函数声明:

具体使用:

 注意事项:

字符串⾃⼰给⾃⼰追加,如何?

模拟实现strcat函数:


函数介绍:

被称为字符串的追加/链接函数,它的功能就是在一个字符串后面追加上另外一个字符串。

函数声明:

char *strcat(char *_Destination, const char *_Source)

具体使用:

#include <stdio.h>
#include <string.h>
int main()
{char arr1[30] = "hello";char arr2[] = "world";strcat(arr1, arr2);printf("%s\n", arr1);//追加字符串return 0;
}

 输出结果:

 

 注意事项:

  • 源字符串必须以 '\0' 结束。
  • ⽬标字符串中也得有 \0 ,否则没办法知道追加从哪⾥开始。
  • ⽬标空间必须有⾜够的⼤,能容纳下源字符串的内容。
  • ⽬标空间必须可修改。

和strcpy的原因一样,详细: http://t.csdn.cn/JW6kh

字符串⾃⼰给⾃⼰追加,如何?

int main()
{char arr1[30] = "hello";strcat(arr1, arr1);printf("%s\n", arr1);return 0;
}

答案是不行的! 

strcat的本质:

  • strcat在追加的时候会对目标字符串的\0进行覆盖,且追加的原理是把追加的字符串的字符一个一个挪到追加的空间中。
  • 所以自己追加自己本质上是把自己的字符进行移动,但是这个移动的过程会覆盖掉原先的\0所以出错。

模拟实现strcat函数:

char* my_strcat(char* dest, const char* str)
{char* ret = dest;assert(*dest != NULL);assert(*str);//找到目的字符串里的'\0'while (*dest != '\0'){dest++;}//追加while (*dest++ = *str++){;}return ret;
}

 

 


http://www.ppmy.cn/news/1065174.html

相关文章

Java“牵手”天猫商品历史价格信息API接口数据,天猫API接口申请指南

天猫平台商品历史价格接口是开放平台提供的一种API接口&#xff0c;通过调用API接口&#xff0c;开发者可以获取天猫商品的标题、价格、库存、月销量、总销量、库存、详情描述、图片、最低价、当前价格、价格信息等详细信息 。 获取商品历史价格接口API是一种用于获取电商平台…

理解HTTPS/TLS/SSL(一)基础概念+配置本地自签名证书

文章目录 没有HTTPS时的样子场景模拟WireShark的Capture Filter和Display Filter设置Capture Filter启动程序设置Display Filter过滤抓到的包 结论 关于为什么加密更简洁有力的回答对称加密和非对称加密和CA证书密钥交换对称加密非对称加密CA机构和证书如何解决客户端和CA机构之…

【CSS】em单位的理解

1、em单位的定义 MDN的解释&#xff1a;它是相对于父元素的字体大小的一个单位。 例如&#xff1a;父元素font-size&#xff1a;16px&#xff1b;子元素的font-size&#xff1a;2em&#xff08;也就是32px&#xff09; 注&#xff1a;有一个误区&#xff0c;虽然他是一个相对…

【rust/egui】(五)看看template的app.rs:SidePanel、CentralPanel以及heading

说在前面 rust新手&#xff0c;egui没啥找到啥教程&#xff0c;这里自己记录下学习过程环境&#xff1a;windows11 22H2rust版本&#xff1a;rustc 1.71.1egui版本&#xff1a;0.22.0eframe版本&#xff1a;0.22.0上一篇&#xff1a;这里 SidePanel 侧边栏&#xff0c;如下图 …

生成模型 -- GAN

文章目录 1. 生成模型与判别模型1.1 生成模型 2. VAE3. GAN3.1 GAN-生成对抗网络3.2 GAN-生成对抗网络的训练3.2.1 判别模型的训练&#xff1a;3.2.2 生成网络的训练&#xff1a; 4. LeakyReLU5. GAN代码实例 1. 生成模型与判别模型 生成模型与判别模型 我们前面几章主要介绍了…

es引擎篇

1、es引擎是什么&#xff1f; Elasticsearch是高度可伸缩的开源全文搜索和分析引擎。 它允许我们快速实时地存储、搜索、分析大数据。 Elasticsearch使用Lucene作为内部引擎&#xff0c;但是在你使用它做全文搜索时&#xff0c;只需要使用统一开发好的API即可&#xff0c;而不…

如何识别PCI/PCIE设备需要申请多大的地址空间?

1、PCI/PCIE设备的配置空间 (1)PCI/PCIE设备需要的资源都在配置空间里进行指定&#xff0c;其中需要的地址空间资源在配置空间的基地址寄存器里指定&#xff1b; (2)参考博客&#xff1a;《PCI设备和PCI桥的配置空间(header_type0、header_type1)和配置命令(type0、type1)详解》…

C语言基础之——指针(下)

前言&#xff1a;本篇文章将继续讲解有关指针的剩余基础知识。 学无止境&#xff0c;一起加油叭&#xff01;&#xff01; 目录 一.指针运算 1.指针 - 整数 2.指针的关系运算 3.指针 - 指针 二.指针与数组 三.二级指针 四.指针数组 总结 一.指针运算 指针运算包括以下三…