【C】库函数之 strcat

2024-02-27 11:32
文章标签 strcat 库函数

本文主要是介绍【C】库函数之 strcat,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

1. Concatenate strings

2. 源代码

3. 输出结果


1. Concatenate strings

#include <string.h>
char * strcat ( char * destination, const char * source );

Appends a copy of the source string to the destination string. The terminating null character in destination is overwritten by the first character of source, and a null-character is included at the end of the new string formed by the concatenation of both in destination.

destination and source shall not overlap.

上述内容是 cplusplus 对 strcat 函数的介绍,

可以看出 strcat 函数将源字符串的内容 拼接 到目标字符串后面,而目标字符串中的终止空字符被源字符串的第一个字符覆盖,新字符串的末尾包含一个空字符。

需要注意的是,目标字符串不能与源字符串重叠

如果目标数组大小 小于 源字符串,也会 拼接字符串成功,但是这导致了缓冲区溢出,是不安全的,比较安全的实现是指定需要拼接的字符串的大小,可以参考 strncat函数实现。

2. 源代码

#include <stdio.h>
#include <assert.h>char *Strcat(char *dest, const char *src) {assert((NULL != src) && (NULL != dest));char *ret = dest;while ('\0' != *ret)++ret;while (((*ret++) = (*src++)));   return dest;
}void test() {char str1[10] = "abc";char str2[] = "xyz";printf("call Strcat before, str1: %s, str2: %s\n", str1, str2);printf("call Strcat after, str1: %s, str2: %s\n", Strcat(str1, str2), str2);
}int main(void) {test();return 0;
}

3. 输出结果

call Strcat before, str1: abc, str2: xyz
call Strcat after, str1: abcxyz, str2: xyz

这篇关于【C】库函数之 strcat的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/752246

相关文章

整理的经典面试题及各种库函数的自己实现

进程间通信方式 管道(有名管道,无名管道),共享内存,消息队列,信号量,socket通信 线程同步方式 临界区:通过对多线程的串行化来访问公共资源或一段代码,速度快,适合控制数据访问 互斥量:为协调共同对一个共享资源的单独访问而设计 信号量(PV操作):为控制一个具有有限数量用户资源而设计 事件:用来通知线程有一些事件已 进程和线程的区别 资源:进程是拥有资源的一个独立单位,线程是

【ORACLE】strcat() 函数

STRCAT() 函数在 Oracle 数据库中用于连接两个或多个字符串。这个函数可以接收任意数量的参数,并将它们连接成一个单一的字符串。 函数的基本语法如下: STRCAT(str1, str2, ..., strN) 其中 str1, str2, ..., strN 是要连接的字符串参数。 示例 假设我们有两个字符串 'Hello' 和 'World',我们想要将它们连接起来:

【PyTorch常用库函数】torch.add():张量的加法操作

🎬 鸽芷咕:个人主页  🔥 个人专栏: 《C++干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 文章目录 前言一 、torch.add()函数的基本用法二、示例演示示例1:两个相同形状的一维张量相加示例2:两个不同形状的一维张量相加(错误示例)示例3:使用alpha参数进行加权加法 结尾 前言 PyTorch作为一

PyTorch常用库函数:torch.acos()的详解实战使用

🎬 鸽芷咕:个人主页  🔥 个人专栏: 《C++干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 文章目录 引言一、函数简介1.2 函数语法1.3 参数说明 二、 示例代码2.1 注意事项 总结 引言 PyTorch 是一个流行的深度学习框架,它提供了丰富的库函数,用于处理张量(多维数组)的各种操作。在科学计算和深度

不使用库函数 字符串与整型 转换

摘要 本文首先 在实现中 字符串 格式化输入函数上 遇到的一个问题。其次 ,讲解 如何 处理 字符串转换为 整型常量的 实现。最终, 文章将给出 整型常量 变为 字符串的实现 源代码。 1. 编程中 格式化输入函数 遇到的一个小问题 下面这段代码 字符串输入 在句法上是没有问题的(编译、连接不会报错),但是显然会在程序运行时出错: [cpp] view plain copy

使用库函数API和C代码中嵌入汇编代码两种方式实现对sysinfo的系统调用

本例对116号系统调用sysinfo,通过c语言和嵌入式汇编语言来实现。 1.C语言实现过程如下: 打开VIM编辑器边集sysinfo.c文件,如下 #include<stdio.h>#include<sys/sysinfo.h>int main(){struct sysinfo info;if(sysinfo(&info)<0){perror("sysinfo failed!");

STM32:TIM定时中断配置的最全库函数讲解笔记

声明:本博客为哔哩哔哩up主@江协科技 “STM32入门教程”的听课笔记,仅供学习、参考使用,不得用作其他用途,违者必究。如有版权问题,请联系作者修改。 目录 一、综述 二、TIM库 初始化 2.1、TIM_DeInit 恢复缺省值 2.2、TIM_TimeBaseInit 时基单元初始化 2.3、 TIM_TimeBaseStructInit 时基单元结构体默认

【PyTorch常用库函数】一文向您详解 with torch.no_grad(): 的高效用法

🎬 鸽芷咕:个人主页  🔥 个人专栏: 《C++干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 引言 在训练神经网络时,我们通常需要计算损失函数关于模型参数的梯度,以便通过梯度下降等优化算法更新参数。然而,在评估阶段,我们只关心模型的输出,而不需要更新参数。在这种情况下,使用 with torch.no_grad(): 上下文管

【PyTorch常用库函数】一文教你快速上手torch.abs()函数:获取张量的绝对值

🎬 鸽芷咕:个人主页  🔥 个人专栏: 《C++干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 引言 在深度学习领域,PyTorch是一个非常受欢迎的框架,它提供了丰富的库函数来支持各种复杂的计算任务。今天,我们将深入探讨PyTorch中的一个基础但非常重要的函数:torch.abs()。这个函数用于计算张量(Tensor)中每