c++ string常用操作详解

背景

写下这篇博客的原因是在力扣上刷题的时候遇到一个字符串URL的题目(这里),里面需要用到关于string的元素操作,自己不是很熟悉,于是找了资料整理并编写代码,关于字符串的操作大部分常用的都在这里,希望和大家一起学习进步!

字符串常用操作

1.构造和初始化

提供 = 号,assign可以用于初始化,如下:

函数或者操作符 函数或者操作符作用
string str = “handsome boy”; 初始化一个字符串变量
string s(str); 将字符串s赋值为字符串str
string s(str,idx); 将字符串str始于idx的值赋值给s
string s(str,idx,length) 将str从idx开始长度为length的部分赋值给s
string s(num,c) 将num个字符c赋值给s
string s(str.begin(),str.end() 将字符串strbegin到end的部分赋值给s
s.~string() 销毁所有字符,释放内存
s.assign(str,3,6) 将str3-6的部分赋值给s
s.assign(“good”); 将s赋值“good”
s.assign(5,‘a’); s:aaaaa

示例code:

#include<iostream>
#include<string>

using namespace std;
int main()
{
/***************Initialization********************/
  string str = "handsome boy";
  string s6,s7,s8, s9, s10;

  string s1(str);
  //string s2(s,3);
  string s3(str,3,4);
  string s4(4,'A');
  string s5( s4.begin(), s4.end() );

  s6.assign(str);
  s7.assign(str, 2);
  s8.assign(str, 1, 4 );
  s9.assign(5, 'a');
  //s10.assign('g',5);

/********************Results**********************/
  cout << "str: " << str << endl;
  cout << "s1: " << s1 << endl;
  cout << "s3: " << s3 << endl;
  cout << "s4: " << s4 << endl;
  cout << "s5: " << s5 << endl;
  cout << "s6: " << s6 << endl;
  cout << "s7: " << s7 << endl;
  cout << "s8: " << s8 << endl;
  cout << "s9: " << s9 << endl;
  str.~string();
}

结果:
在这里插入图片描述
2.其他操作
首先定义两个字符串string str1, str2;

函数操作 函数意义
str1.swap(str2) 交换两个字符串的元素
str1 += str2; 将str2加到str1的尾部
str1.append(str2); 在str1的尾部加字符串str2
str1.append(str2,1,3) 将str2的第1-3位加到str1的尾部
str1.append(“good”) 将C字符串“good”加到str1的尾部
str1.append(5, ‘x’) 将5个字符‘x’ 加到str1的尾部
str1.push_back(‘a’) 在str1的尾部加入一个字符’a’,注意的是push_back()只能加入一个字符
insert() 在字符串的某个位置插入字符串,需要注意的是这个函数不支持插入单个字符,且插入时必须提供索引,将需要插入的字符串插入到索引后面
str1.insert(2, str2) 在str1的第二个字符后插入字符串str2
str1.insert(2, “good”) 同上
erase() 删除字符,str1.erase(2):删除str1第二位之后的所有元素;str1.erase(2,5):从str1第二位往后删5个
clear() 删除全部字符
[ ], at() 读取某一元素
str1.empty() 判空
substr() 这是一个比较重要而且少用的函数,具体用法为参考以下
str1 = str2.substr() 将str2全部赋值给str1
str1 = str2.substr(2,5) 将str2从2开始往后5个元素赋值给str1
str1 = str2.substr(4) 将str2从第4位往后全部赋值给str1
size(), length() 现有字符串的字符数
data() 将内容以字符数组形式返回

具体用法大家可以写一个简单示例运行即可,另欢迎指正!
其他操作示例代码后续上传:
示例code:

TODO

结果:

TODO

参考—>这里

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章