news 2026/6/23 16:06:46

字符串的拼接函数: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/23 3:36:23

GraphRAG-Local-UI终极指南:本地知识图谱构建与智能查询完整教程

GraphRAG-Local-UI是一个功能强大的本地化知识图谱构建工具&#xff0c;它基于微软GraphRAG项目开发&#xff0c;支持使用本地语言模型进行智能数据索引和查询。这个项目为开发者提供了一个完整的生态系统&#xff0c;让你能够在本地环境中构建、管理和查询复杂的知识图谱&…

作者头像 李华
网站建设 2026/6/23 19:33:50

Messari:Flow 生态 2025 年 Q3 发展概览

TL&DRForte 公共测试网已正式上线&#xff0c;支持 Actions、Agents 与 Scheduled Transactions&#xff0c;为开发者提供了原生的链上定时执行工具&#xff0c;使计划性链上操作成为协议级能力。Flow 的 DeFi 总锁仓量&#xff08;TVL&#xff09;环比增长 53.1%&#xff…

作者头像 李华
网站建设 2026/6/23 19:34:17

Draft.js工具栏深度定制:构建企业级富文本编辑器的完整实践

Draft.js工具栏深度定制&#xff1a;构建企业级富文本编辑器的完整实践 【免费下载链接】draft-js A React framework for building text editors. 项目地址: https://gitcode.com/gh_mirrors/dra/draft-js 在当今内容驱动的互联网时代&#xff0c;富文本编辑器已成为各…

作者头像 李华
网站建设 2026/6/23 14:04:28

下一个版本EmotiVoice将带来哪些惊喜?

下一个版本EmotiVoice将带来哪些惊喜&#xff1f; 在虚拟主播直播中突然情绪爆发&#xff0c;或是在智能助手提醒你迟到时语气里透出一丝“恨铁不成钢”的焦急——这些不再是科幻桥段。当语音合成系统开始学会“动情”&#xff0c;人机交互的边界正在被悄然重塑。 而在这场变革…

作者头像 李华
网站建设 2026/6/23 19:32:05

明诺多功能全自动洗地机,适用于超市、地库及商场清洁需求

明诺多功能全自动洗地机如何提高超市地面清洁效率明诺多功能全自动洗地机在超市清洁中表现尤为出色&#xff0c;其高效的清洁性能为超市日常运营提供了极大的便利。该设备采用先进的清洁技术&#xff0c;能够快速去除顽固污垢和 Spill&#xff0c;以保持地面的整洁与安全。此外…

作者头像 李华
网站建设 2026/6/20 16:43:05

最近网上爆火的Flowith AI是啥?能否成为下一代AI Agent产品?

现在的AI工具已经快要进化成咱们小白用户看不懂的样子了&#xff0c;就好像2000年的时候第一次接触电脑一样……小白有一种很明显的感觉&#xff1a;明明是在使用电脑&#xff0c;却感觉这个电脑真的很陌生……因为最近接触了到一个AI工具—— Flowith AI。一个能自主规划并执行…

作者头像 李华