亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> C语言

C++ 字符串函数实战:strcpy、strcat、strlen、strcmp 详解与示例

什么是字符串?

字符串本质是字符序列。现代 C++ 通常使用 std::string 类对象,它自动处理内存分配、调整大小并提供丰富的成员函数,免去手动缓冲区管理,降低缓冲区溢出风险。

为兼容教学与遗留代码,C++ 仍支持传统 C 风格的以空字符结尾的字符数组。两者各有适用场景:日常编程首选 std::string,遗留 API 或性能极敏感的底层代码可用 C 风格字符串。

声明字符串

C 风格字符串

示例:

 char name[5] = {'J', 'o', 'h', 'n', '\0'}; 

或更简洁:

 char name[] = "John"; // 编译器自动添加终止 '\0' 

std::string

使用 std::string 需包含头文件并声明变量:

 #include <string> std::string name = "John"; 

访问字符串值

下面的控制台程序分别打印 C 风格字符串和 std::string 的值。

 #include <iostream> #include <string> using namespace std; int main() { char cName[5] = "John"; // C 风格字符串 string cppName = "Guru99"; // std::string cout << "C-style string: " << cName << endl; cout << "std::string: " << cppName << endl; return 0; } 

输出:

C++ 字符串函数实战:strcpy、strcat、strlen、strcmp 详解与示例

核心 C 字符串函数

这些函数定义在 cstring 头文件中,操作 C 风格字符串(以空字符结尾的 char 数组)。

strcpy()

将源字符串复制到目标缓冲区。目标缓冲区必须足够大以容纳源字符串。

 strcpy(dest, src); // dest 必须有足够空间 

strcat()

将源字符串追加到目标字符串末尾。同样,目标缓冲区必须足够大以容纳拼接结果。

 strcat(dest, src); // dest 必须有足够空间 

strlen()

返回字符串字符数,不包含终止空字符。

 size_t len = strlen(str); 

strcmp()

按字典序比较两字符串。相等返回 0,第一个字符串较小返回负值,较大返回正值。

 int cmp = strcmp(str1, str2); 

实战示例

 #include <iostream> #include <cstring> using namespace std; int main() { char name1[10] = "Guru99"; char name2[10] = "John"; char name3[20]; // 确保能容纳拼接结果 // 复制 strcpy(name3, name1); cout << "strcpy(name3, name1): " << name3 << endl; // 拼接 strcat(name1, name2); cout << "strcat(name1, name2): " << name1 << endl; // 长度 size_t len = strlen(name1); cout << "strlen(name1): " << len << endl; // 比较 int cmp = strcmp(name1, name3); cout << "strcmp(name1, name3): " << cmp << endl; return 0; } 

输出:

C++ 字符串函数实战:strcpy、strcat、strlen、strcmp 详解与示例

核心要点

C语言

  1. C++ 变量与数据类型全解析:int、double、char、string、bool 详细指南
  2. C++ 数组完全指南:声明、初始化、多维数组与指针技巧
  3. C++ do-while 循环详解:语法、实战示例与嵌套循环
  4. C++ 指针精通:核心概念、代码示例与实战应用
  5. C++ char 类型完全指南:声明、ASCII 码、输入输出与字符串转换
  6. C++ 运算符重载实战指南:语法、方法、限制与代码示例
  7. C++ 函数详解:从声明到调用的实战指南
  8. C 语言字符串完全指南:声明、输入输出与库函数详解
  9. 精通 Java 字符串:创建、方法与最佳实践
  10. 精通 Java 枚举字符串表示:默认行为、toString 重写与进阶模式
  11. 精通 Java String.indexOf():定位子字符串与实战示例
  12. Java 中 char 与 String 相互转换:实用示例与最佳实践