12个C++应该掌握的String处理方法

已收录   阅读次数: 581
2021-10-0219:36:00 发表评论
摘要

C++ 是最强大的编程语言之一,借助其内置方法执行排序、搜索和反转等操作。在本文中,您将学习 12 个 C++ 字符串方法,这些方法可帮助您使用一小部分代码来对字符串执行操作,就像是在使用python和js在处理字符串(虽然并没有像这么简单),分享给大家……

分享至:
12个C++应该掌握的String处理方法

开篇寄语

C++ 是最强大的编程语言之一,借助其内置方法执行排序、搜索和反转等操作。在本文中,您将学习 12 个 C++ 字符串方法,这些方法可帮助您使用一小部分代码来对字符串执行操作,就像是在使用python和js在处理字符串(虽然并没有像这么简单),分享给大家。

内容详情

字符串方法是存储在字符串头文件中的预构建函数。您可以通过导入字符串头文件来使用它们:

#include <string>

接下来命名一个字符串,以“Hello World”为例:

string str = “Hello World”;

1.begin()

  • C++ 中的 begin() 方法返回到字符串开头的迭代器。使用 auto 关键字创建迭代器并使用 str.begin() 存储字符串变量的初始引用,试举一例:
auto i = str.begin();
cout<<"The first character in the string str is: "<<*i<<endl;
//输出结果为The first character in the string str is: H

2.end()

  • end() 字符串方法返回到字符串末尾的迭代器,此代码打印字符串变量的最后一个字符:
auto i = s.end()-1;
cout<<"The last character in the string s is: "<<*i<<endl;
//输出结果为The first character in the string s is: d

3.push_back()

  • push_back() 方法在字符串的末尾插入一个字符。通过执行此操作,字符串的大小增加 1,试举一例:
str.push_back('!');
cout<<str;
//结果为Hello World!

4.pop_back()

  • pop_back() 方法删除字符串的最后一个字符。以下是在字符串 str 上尝试此方法的方法:
str.pop_back();
cout<<str<<endl;
//结果为Hello Worl

5.size()

  • size() 方法可帮助您计算字符串的长度,试举例如下:
cout<<"The size of the string str is "<<str.size()<<endl;
//结果为11

6.copy()

  • copy() 方法复制一个完整的字符串或子字符串。它接受三个参数:字符数组、子字符串的长度和字符串应该从哪里开始复制,试举例如下:
char str2[50];
str.copy(str2, 5,1);
cout<<"The value in str2: "<<str2<<endl;
//结果为ello

7.swap()

  • swap() 方法可帮助您相互交换两个字符串,此方法的语法是:
string1.swap(string2)

试举例如下:

string str = “Welcome To MUO”;
string str2 = "Hi There";   
str.swap(str2); 
cout<<"String 1 str: "<<str<<endl;
cout<<"String 2 str2: "<<str2<<endl;

//结果为str2 = "Welcome To MUO", str = "Hi There"

8.getline()

  • getline() 方法存储输入期间接受的字符流。此方法接受两个参数:cin 和字符串变量。
string s;
cout<<"Enter a string"<<endl;
getline(cin,s);
cout<<s<<endl;
//结果为:
//Enter a string
//Hello World

9.resize()

  • resize() 方法通过动态增加或减少字符串来改变字符串的长度。它接受一个参数:要调整字符串大小的长度,试举例如下:
str.resize(10);
cout<<"The value of str after resizing it: "<<str<<endl;
//结果为The value of str after resizing it: Hello Worl

10.capacity()

  • C++ 中的 capacity() 方法返回分配给字符串的容量。它可以等于或大于字符串的长度,试举例如下:
cout<<"The capacity of the string is "<<str.capacity()<<endl;

11.stoi()

  • stoi() 方法有助于将字符串形式的数字转换为其数值。它接受一个参数:字符串变量。如果您的字符串变量除了数字之外还有其他字符,它会过滤掉它们。但是要使此方法起作用,非数字字符串字符必须跟在数字之后。如果字符出现在数字之前,它将返回一个错误,试举例如下:
string s1 = "123";
int v1 = stoi(s1);
cout<<"Stoi() for s1: "<<v1<<endl;
string s2 = "123 pass";
int v2 = stoi(s2);
cout<<"Stoi() for s2: "<<v2;
//结果为:
//Stoi() for s1: 123 
//Stoi() for s2: 123

12.rbegin() and rend()

  • rbegin() 方法将反向迭代器的引用返回到末尾的字符串。类似地,rend() 方法将起始迭代器的引用返回到开头的字符串,试举例如下:
auto beg = str.rbegin();
auto end = str.rend()-1;
cout<<"The last character is: "<<*beg<<endl;
cout<<"The first character is: "<<*end<<endl;
//结果为
//d
//H

打印出来可以用for循环:

for(auto i=str.rbegin(); i!=str.rend(); i++){
      cout<<*i;
}
//结果为dlrow olleH

既然您已经学会了实现字符串头的各种字符串方法,您就可以自信地探索 C++ 头文件中的更多预构建方法。从 sort() 和 reverse() 到 binary_search(),在编码世界中,几乎没有什么 C++ STL 无法完成的。

  • 我的微信
  • 微信扫一扫加好友
  • weinxin
  • 我的微信公众号
  • 扫描关注公众号
  • weinxin
  • A+
所属分类:C++

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: