【C库函数】strcat函数详解

2023-05-16

目录

strcat

函数原型

参数讲解

返回值详解

函数讲解

(1)源字符串和目标字符串都必须以'\0'结束

(2)目标空间必须足够大,能容纳下源字符串的内容

(3)目标空间必须可修改


strcat

        字符串追加

函数原型

char *strcat( char * destination, const char source );

参数讲解

参数destionationsource
解释目标字符串地址以 Null 结尾的源字符串地址

返回值详解

函数返回目标字符串 (destination)。 没有返回值则追加失败。

函数讲解

         strcat函数可以可以把一个字符串最加到另一个字符串上,如下。

       

 当我们在使用strcat函数时,strcat并非对任意字符串都进行追加。

        所以我们要注意一下几点

(1)源字符串和目标字符串都必须以'\0'结束

        strcat在给目标字符串追加字符时,首先就要找到目标字符串中'\0'的位置,并在'\0'的位置上向后追加,为不是直接追加到目标字符串的末尾

我们来看以下代码

#include<stdio.h>
#include<string.h>

int main()
{
	char arr1[20] = "hello\0XXXXXXXX";
	char arr2[] = "bit";

	strcat(arr1, arr2);
	printf("%s", arr1);
	return 0;
}

如下图,arr2是从arr1中第一个'\0'位置,开始追加的。同时还把arr2中的'\0'追加到arr1中 

当我们不在目标字符串内添加'\0',使用strcat函数就会出现错误,打印源字符串甚至会出现乱码。

(2)目标空间必须足够大,能容纳下源字符串的内容

当目标字符串剩余空间容不下源字符串时,编译器就会出现警告 

(3)目标空间必须可修改

我们来看一下下列代码

#include<stdio.h>
#include<string.h>

int main()
{
	char* arr1 = "hello";
	char arr2[] = "bit";

	strcat(arr1, arr2);
	printf("%s", arr1);
	return 0;
}

当我们运行时,编译器会一直运行知道崩溃!为什么呢?因为这里arr1是个字符型指针,arr1所指向的字符是个常量字符不能改变,所以这种情况运行时编译器也会崩溃。 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【C库函数】strcat函数详解 的相关文章

随机推荐

  • 【GUI】基于Python的文本数据处理(串口解析 0D 0A结尾)

    GUI 基于Python的文本数据处理 xff08 串口解析 0D 0A结尾 xff09 如有串口数据 xff1a span class token punctuation span span class token number 37 s
  • ssh指定登陆用户

    指定登陆用户 默认的 xff0c ssh 会尝试用当前用户作为用户名来连接 在上面的示例命令中 xff0c ssh 会尝试用用户名叫 pungki 的用户身份来登入服务器 xff0c 这是因为用户 pungki 正在客户机上使用 ssh 客
  • 【Python文本处理】基于GPX文件的心率、速度、时间等参数更改

    Python文本处理 基于GPX文件的心率 速度 时间等参数更改 GPX文件本身其实就是坐标 海拔 时间 心率等综合性的xml文件 如图 xff1a 海拔 xff1a ele 时间 xff1a time 心率 xff1a heartrate
  • ubuntu学习笔记

    64 ubuntu学习笔记 记录一些经常用到的软件或在环境的配置 1 安装18 04ubuntu 2 安装ROS 安装方法 xff1a ROS安装 3 安装VScode VScode安装 4 安装PCL ubuntu安装pcl1 8 1 下
  • pointSIFT报错:找不到 -ltensorflow_framework

    本人环境 xff1a ubuntu18 04 tensorflow 2 1 在复现pointSIFT的时候 xff0c 按照readme提示 xff0c 修改 sh文件中tensorflow和lib的位置 xff0c 编译 sh文件时报错
  • 51单片机串口通信原理、相关寄存器配置与简单串口收发程序代码

    目录 1 串口通信原理 2 51单片机串口通信 2 1 串口简要模式图 2 2 相关寄存器 xff08 1 xff09 PCON SCON SBUF xff08 2 xff09 IE IPH IP xff08 3 xff09 配置T1定时器
  • 数据库左连接和右连接有什么区别!

    大家好我是艺霏 xff0c 今天和大家谈一下数据库左连接和右连接有什么区别 xff1f 数据库中的左连接和右连接的区别可以概括为一句话来表示即左连接where只影响右表 xff0c 右连接where只影响到左表 image png 在这里推
  • 集成测试详解,看完必须懂了

    什么是集成测试 集成测试 xff08 Integration Testing xff09 xff0c 也叫组装测试或联合测试 在单元测试的基础上 xff0c 将所有模块按照设计要求 xff08 如根据结构图 xff09 组装成为子系统或系统
  • 2023软件测试工程师面试题汇总-看完你离大厂不远了

    都说知己知彼方能百战不殆 xff0c 转眼间2023年已经来到 xff0c 现在已经是一月中旬了 xff0c 每年的3 4月都是找工作的好时机 xff0c 我们又经常叫他们金三银四 今天就给大家汇总了很多关于测试的面试题 xff0c 希望能
  • 面试了8家软件公司测试岗位,面试题大盘点,我真的尽力了。

    项目的测试流程 拿到需求文档后 xff0c 写测试用例 审核测试用例 等待开发包 部署测试环境 冒烟测试 xff08 网页架构图 xff09 页面初始化测试 xff08 查看数据库中的数据内容和页面展示的内容是否一致 xff0c 并且是否按
  • 2021年最强软件测试工程师Linux面试题及答案

    前言 xff1a 大家好 xff0c 我是一菲 xff0c 前段时间有很多朋友给我私信留言 xff1a 在面试软件测试工作时 xff0c 部分的liunx的问题答不上来 xff0c 于是一菲快马加鞭 xff0c 连夜给大家整理了一份关于li
  • iOS APP测试方法和测试工具 大揭秘

    随着移动互联网的发展 xff0c 以及智能手机的普及 xff0c 各种各样的 APP 层出不穷 xff0c 大家可以数一数自己手机上安装的 APP xff0c 随随便便几十个 xff0c 上百个 xff0c 所以现在 APP 测试的需求也越
  • oracle sql loader命令与ctl写法

    xfeff xfeff sql loader 的特点 oracle自己带了很多的工具可以用来进行数据的迁移 备份和恢复等工作 但是每个工具都有自己的特点 比如说exp和imp可以对数据库中的数据进行导出和导出的工作 xff0c 是一种很好的
  • 史上最全的字符串格式化方法,学这些就够用了

    一 思考 1 什么是字符串格式化 将变量 xff08 对象 xff09 的值填充到字符串中 在字符串中解析Python表达式 对字符串进行格式化显示 左对齐 右对齐 居中对齐保留数字有效位数 2 你学过的字符串格式化方式有哪些 字符串格式化
  • Linux实现黑客帝国效果,超级简单

    MATRIX是Linux的环境下黑客帝国风格的屏保 xff0c 绿色的字母在屏幕上刷刷如雨水落下 xff0c 偶尔看看能回忆起程序猿的黑客梦 首先要在网上找到CMATRIX安装包 xff0c 然后安装 xff0c 需要的话找柠檬班小米 xf
  • 10年互联网职场过来人给测试专业大学生的学习建议

    改进学习方法 xff0c 就如改进你的测试方法一样 不管你面临的是什么环境和挑战 xff0c 值得期许的 就值得去尝试 1 关于学习 在学校期间以专业课为主 xff0c 专业理论知识越扎实 xff0c 后期实践才越容易深入理解且上手更快 对
  • 使用 GitHub Copilot 自动化测试

    代码完成并不是什么新鲜事 像 IntelliSense 这样的工具已经允许开发人员通过尝试自动完成他们正在编写的函数或语句的名称来提高工作效率 xff0c 但是可用的工具只有一定程度的实际 智能 可用 随着 GitHub 的 Copilot
  • 想让你的接口自动化测试更加有效? 这个统计方法必须掌握

    覆盖率概念 接口自动化测试是现代软件开发中不可或缺的一环 xff0c 它能够帮助开发团队自动化执行测试用例 xff0c 以快速而准确地发现并修复软件缺陷 而覆盖率统计则是在测试执行完成后 xff0c 帮助测试团队了解哪些代码路径被覆盖了 x
  • 大小端字节序详解

    目录 引文 大小端介绍 xff08 1 xff09 什么是大端小端 xff08 2 xff09 为什么有大端和小端 xff08 3 xff09 笔试题讲解 引文 在开始正文之前 xff0c 我想先问一下大家 xff0c 内存中是怎样存放一个
  • 【C库函数】strcat函数详解

    目录 strcat 函数原型 参数讲解 返回值详解 函数讲解 xff08 1 xff09 源字符串和目标字符串都必须以 39 0 39 结束 xff08 2 xff09 目标空间必须足够大 xff0c 能容纳下源字符串的内容 xff08 3