21xrx.com
2024-11-25 03:14:13 Monday
登录
文章检索 我的文章 写文章
C++字符串的截取操作
2023-07-02 02:46:34 深夜i     --     --
C++ 字符串 截取

在C++编程语言中,字符串是经常使用的数据类型之一。为此,C++中也提供了一些字符串的操作方法,其中就包括了字符串的截取。在进行字符串的截取操作时,需要考虑到被截取的字符串长度,以及截取的起点和终点。

C++字符串的截取方法

C++中提供了一些方法来进行字符串截取操作,主要有以下几种方式:

1. substr()函数

substr()函数是C++内置的字符串截取函数,它的原型为:


string substr (size_t pos, size_t len) const;

其中,pos代表截取的起始位置,len代表要截取的长度。具体截取的字符串为从起始位置开始的len个字符。这个函数返回一个新的字符串对象,而不会改变原有字符串。

例如,下面的代码就是使用substr()函数将字符串a的第2个字符开始,长度为4的子串赋值给另一个字符串b。


#include <iostream>

#include <string>

using namespace std;

int main()

{

  string a = "Hello World";

  string b = a.substr(2,4);

  cout << b << endl; //lo W

  return 0;

}

2. copy()函数

copy()函数是另一种C++内置的字符串截取函数,它的原型为:


size_t copy (char* s, size_t n, size_t pos = 0) const;

其中,s代表存放截取的字符的地址,n代表要截取的长度,pos代表截取的位置,即从哪个位置开始截取。这个函数返回实际截取的字符数。

例如,下面的代码就是使用copy()函数将字符串a的第2个字符开始,长度为4的子串复制到字符数组char_array中。


#include <iostream>

#include <string>

using namespace std;

int main()

{

  string a = "Hello World";

  char char_array[5];

  a.copy(char_array, 4, 2);

  cout << char_array << endl; //lo W

  return 0;

}

需要注意的是,如果要将截取的字符作为C风格的字符串使用,需要手动在复制的字符数组末尾添加一个终止符号'\0'。

3. 数组下标方式

除了使用内置函数进行字符串截取,还可以使用数组下标方式进行操作。具体方式就是通过访问字符串中的索引方式来获取想要的子串。

例如,下面的代码就是通过数组下标方式截取字符串a的第2个字符开始,长度为4的子串,并将其赋值给另一个字符串b。


#include <iostream>

#include <string>

using namespace std;

int main()

{

  string a = "Hello World";

  string b = "";

  for (int i = 2; i < 6; i++) {

    b += a[i];

  }

  cout << b << endl; //lo W

  return 0;

}

需要注意的是,使用数组下标方式进行字符串截取时,需要自己处理好字符串越界的情况,否则可能会引发程序异常。

  
  

评论区

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