21xrx.com
2024-12-22 22:29:49 Sunday
登录
文章检索 我的文章 写文章
C++字符串截断操作
2023-07-11 10:25:00 深夜i     --     --
C++ 字符串 截断操作

在C++中,经常会遇到需要截断字符串的情况。字符串截断操作指的是从一个字符串中取出一部分子串。本文将介绍C++中的字符串截断操作。

C++中的字符串可以使用字符数组和string类两种方式表示。这两种方式都提供了截断字符串的函数。

1.字符数组的截断操作

字符数组可以使用strcpy和strncpy函数进行字符串截断操作。

strcpy函数是将源字符串复制到目标字符串中,可以截取一部分子串。例如:

char str1[] = "Hello, World!";

char str2[10];

strcpy(str2, str1 + 7);  //取出从第7位开始的子串

cout << str2; //输出结果为 World!

strncpy函数可以复制指定长度的子串到目标字符串中。例如:

char str1[] = "Hello, World!";

char str2[10];

strncpy(str2, str1 + 7, 5); //将从第7位开始的5个字符复制给str2

cout << str2; //输出结果为 World

需要注意的是,在使用strncpy函数时,如果源字符串的长度小于复制长度,则目标字符串不会以'\0'结尾,因此需要手动添加。

2.string类的截断操作

string类提供了substr函数进行字符串截断操作。该函数返回一个新的string对象,包括从指定位置开始的指定长度的子串。例如:

string str1 = "Hello, World!";

string str2 = str1.substr(7);  //从第7位开始截取剩余的子串

cout << str2; //输出结果为 World!

string str3 = str1.substr(7, 5); //从第7位开始截取5个字符组成的子串

cout << str3;  //输出结果为 World

需要注意的是,substr函数的第二个参数代表要截取的字符串长度,而不是结束位置。如果该参数为string::npos,则表示截取从开始位置到字符串末尾的所有字符。

总结

在C++中,字符数组和string类都提供了截断字符串的函数。使用strcpy和strncpy函数可以在字符数组中截取一部分子串,而使用substr函数可以在string类中截取一部分子串。需要注意参数设置和函数返回结果的数据类型。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复