news 2026/6/20 2:36:55

字符串的拼接函数:strcat()

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
字符串的拼接函数:strcat()

一、strcat () 函数介绍

strcat()(string concatenation,字符串拼接)是 C 语言标准库<string.h>中的函数,用于将一个字符串追加(拼接)到另一个字符串的末尾,覆盖目标字符串原有的结束符'\0',并在拼接后的新字符串末尾添加'\0'

1. 函数原型
char *strcat(char *dest, const char *src);
  • 参数
    • dest:目标字符串(存放拼接后的结果),必须是可修改的字符数组(不能是字符串常量),且空间足够容纳原dest+src的内容。
    • src:源字符串(被拼接的字符串),用const修饰表示不修改源字符串。
  • 返回值:返回指向目标字符串dest的指针(便于链式调用)。
2. 核心原理

strcat()会先找到dest的末尾(即第一个'\0'的位置),然后从该位置开始,将src的字符逐个复制到dest中,直到src的结束符'\0'(该'\0'也会被复制)。


二、使用示例

1. 基础用法
#include <stdio.h> #include <string.h> int main() { // 目标数组需预留足够空间(原内容+拼接内容+'\0') char dest[50] = "Hello, "; // 原内容:"Hello, "(长度7) const char *src = "World!"; // 源字符串:"World!"(长度6) // 拼接src到dest末尾 strcat(dest, src); // 输出结果:Hello, World! printf("拼接后的字符串:%s\n", dest); // 输出dest的地址(与返回值一致) printf("strcat返回值:%s\n", strcat(dest, " Goodbye!")); return 0; }

输出结果

拼接后的字符串:Hello, World! strcat返回值:Hello, World! Goodbye!
2. 错误示例(需避免)
#include <stdio.h> #include <string.h> int main() { // 错误1:目标是字符串常量(不可修改,会触发段错误) // char *dest = "Hello, "; // strcat(dest, "World!"); // 错误2:目标数组空间不足(会导致缓冲区溢出,未定义行为) char dest[10] = "Hello, "; // 空间仅10字节,拼接后超出 strcat(dest, "World!"); // 危险:内存越界 return 0; }

三、总结

  1. strcat()用于字符串拼接,需保证目标数组可修改且空间足够
  2. strcat()不做边界检查,存在安全风险,优先使用strncat()
  3. 拼接的核心是覆盖目标字符串的'\0',并在末尾添加新的'\0'
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/19 5:01:22

8款Blender必备插件:让3D创作效率翻倍的终极指南

作为一名Blender用户&#xff0c;你是否经常遇到这样的困扰&#xff1a;建模过程繁琐耗时&#xff0c;渲染效果不尽人意&#xff0c;动画制作复杂难懂&#xff1f;别担心&#xff0c;这正是Blender插件生态系统的价值所在&#xff01;通过精心挑选的插件&#xff0c;你可以将创…

作者头像 李华
网站建设 2026/6/18 11:55:52

Easy Effects终极指南:从新手到专业音频调校师

Easy Effects终极指南&#xff1a;从新手到专业音频调校师 【免费下载链接】easyeffects Limiter, compressor, convolver, equalizer and auto volume and many other plugins for PipeWire applications 项目地址: https://gitcode.com/gh_mirrors/ea/easyeffects 还在…

作者头像 李华
网站建设 2026/6/19 19:49:01

终极快速博客搭建指南:5分钟拥有现代化专业博客

终极快速博客搭建指南&#xff1a;5分钟拥有现代化专业博客 【免费下载链接】tailwind-nextjs-starter-blog This is a Next.js, Tailwind CSS blogging starter template. Comes out of the box configured with the latest technologies to make technical writing a breeze.…

作者头像 李华
网站建设 2026/6/19 6:11:15

语音识别准确率翻倍秘诀:FunASR采样率参数深度解析

语音识别准确率翻倍秘诀&#xff1a;FunASR采样率参数深度解析 【免费下载链接】FunASR A Fundamental End-to-End Speech Recognition Toolkit and Open Source SOTA Pretrained Models, Supporting Speech Recognition, Voice Activity Detection, Text Post-processing etc.…

作者头像 李华
网站建设 2026/6/20 11:07:57

Paddle-Lite Java API:Android端AI模型部署实战指南

Paddle-Lite Java API&#xff1a;Android端AI模型部署实战指南 【免费下载链接】Paddle-Lite PaddlePaddle High Performance Deep Learning Inference Engine for Mobile and Edge (飞桨高性能深度学习端侧推理引擎&#xff09; 项目地址: https://gitcode.com/GitHub_Tren…

作者头像 李华