21xrx.com
2024-09-08 11:42:59 Sunday
登录
文章检索 我的文章 写文章
C++中使用substr函数的方法
2023-07-08 05:10:18 深夜i     --     --
C++ substr函数 使用方法

在C++中,我们有时候需要截取字符串的一部分来进行处理。其中,substr函数就是一个非常便捷的方法。本文将介绍如何使用substr函数来截取字符串的一部分。

语法:

string substr (size_t pos, size_t len) const;

该函数包含两个参数:pos和len。其中,pos表示起始位置,len表示要截取的长度。如果len参数未指定,则substr函数将返回从起始位置到字符串结尾的所有字符。

例如,以下代码将输出字符串“defg”:

string str = "abcdefghi";

string sub = str.substr(3, 4);

cout << sub << endl;

另外需要注意的是,substr函数返回的是一个新字符串,因此我们需要将其赋值给另一个变量。如果我们需要修改截取的子字符串,则可以直接利用该变量进行操作。

例如,以下代码将把字符串“abcdef”变为“xyztuv”:

string str = "abcdef";

string sub = str.substr(0, 3);

sub.replace(0, 3, "xyz");

str.replace(3, 3, "tuv");

str = sub + str.substr(3);

cout << str << endl;

注意,在进行字符串拼接时,我们使用了substr函数来截取字符串的一部分,并将其与另一个字符串拼接在一起。

在实际开发中,我们经常需要根据字符串中的特定字符来截取子字符串。这时,我们可以利用string类的find函数和substr函数来实现所需功能。

例如,以下代码将以逗号为分隔符,将字符串“1,2,3,4,5”中的数字保存到向量中:

string str = "1,2,3,4,5";

vector vec;

size_t pos = 0;

while ((pos = str.find(",")) != string::npos) {

  vec.push_back(stoi(str.substr(0, pos)));

  str.erase(0, pos + 1);

}

vec.push_back(stoi(str));

for (int i : vec)

  cout << i << " ";

在以上代码中,我们使用了find函数来查找逗号在字符串中的位置,并利用substr函数截取字符串中的数字。注意,我们使用了STL的向量(vector)来存储数字,需要在文件头中包含vector头文件。

总结:

substr函数是C++中一个非常便捷的字符串截取方法。我们可以通过指定起始位置和截取长度来截取需要的子字符串,并利用其进行字符串操作。当遇到分隔符等情况时,我们可以结合find函数和substr函数来实现复杂操作。

  
  

评论区

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