c++ string 相关操作

本文详细介绍了C++中字符串的初始化、拼接、比较、子串获取、查找、插入和删除等操作,以及整数与字符串之间的转换,还提到了翻转字符串的方法和子字符串判断的条件。通过实例展示了各种函数的用法,帮助读者更好地理解和操作C++中的字符串类型数据。
摘要由CSDN通过智能技术生成

string 表示字符串,在此进行对一些函数的总结,以方便对字符串列类型的数据进行更好的操作。

一,初始化

  1. string(const char *s) :将 string 对象初始化为 s 指向的字符串
string str("hello");
  1. string(size_type n,char c) :创建一个包含 n 个元素的 string 对象,其中每个元素都被初始化为字符 c
string str(10, 'a');
  1. string(const string &str) :将一个 string 对象初始化为 string 对象 str(复制构造函数)
string str("abcde");
string str2(str);
  1. string() :创建一个默认的 string 对象,长度为 0(默认构造函数)
string str;
  1. string(int n,num[i]) :创建一个长度为 n 的string 对象,它的末尾是num[i],num 是一个string类型的字符串。((参照leetcoode第6056题)
class Solution {
public:
    string largestGoodInteger(string num) {
        int n=num.size();
        string ans="";
        for(int i=2;i<n;i++){
            if(num[i-2]==num[i]&&num[i-1]==num[i]){
                ans=max(ans,string(3,num[i]));
            }
        }
        return ans;
    }
};

获取字符串长度

获取string对象的长度,C语言中使用strlen()来获取字符串长度,C++中使用str.size()或str.length().

string 对象的拼接

C 语言中使用 strcat、strncat 函数来进行字符串拼接操作,C++中可以采用直接 “+ ”运算符的方式。

string.append() 函数,在string对象后添加一个string对象或c风格字符

###对于string对象的比较,可以直接使用关系运算

> < ==

获取子串

使用 string.substr() 函数来获取子串

string  s1 = s.substr(i);//获取从s[i] 开始到结尾的子串
string  s1=s.substr(i,j)//获取从 i 开始长度为 j 的子串

使用 string.find() 方法查找字符

string.rfind() 与 string.find() 方法类似,只是查找顺序不一样, string.rfind() 是从指定位置 pos (默认为字符串末尾)开始向前查找,直到字符串的首部,并返回第一次查找到匹配项时匹配项首字符的索引。换句话说,就是查找子字符串或字符最后一次出现的位置。

string.find_first_of() 方法在字符串中从指定位置开始向后(默认为索引 0 处)查找参数中任何一个字符首次出现的位置

string str("hello world");
int pos = str.find_first_of("abcde");
int pos = str.find_first_of("abcde", 1);  // 第二个参数为位置

string.find_last_of() 方法在字符串中查找参数中任何一个字符最后一次出现的位置

string.find_first_not_of() 方法在字符串中查找第一个不包含在参数中的字符

string.find_last_not_of() 方法在字符串中查找最后一个不包含在参数中的字符

使用 string.insert() 进行插入操作

string& insert(size_t pos,const string&str);   
// 在位置 pos 处插入字符串 str

string& insert(size_t pos,const string&str,size_t subpos,size_t sublen); 
// 在位置 pos 处插入字符串 str 的从位置 subpos 处开始的 sublen 个字符

string& insert(size_t pos,const char * s);    
// 在位置 pos 处插入字符串 s

string& insert(size_t pos,const char * s,size_t n); 
// 在位置 pos 处插入字符串 s 的前 n 个字符

string& insert(size_t pos,size_t n,char c);      
// 在位置 pos 处插入 n 个字符 c

iterator insert (const_iterator p, size_t n, char c); 
// 在 p 处插入 n 个字符 c,并返回插入后迭代器的位置

iterator insert (const_iterator p, char c);       
// 在 p 处插入字符 c,并返回插入后迭代器的位置

使用 string.erase() 进行元素删除操作

string& erase (size_t pos = 0, size_t len = npos);   // 删除从 pos 处开始的 n 个字符
iterator erase (const_iterator p);            // 删除 p 处的一个字符,并返回删除后迭代器的位置
iterator erase (const_iterator first, const_iterator last); // 删除从 first 到last 之间的字符,并返回删除后迭代器的位置

string.front()获取或修改字符串第一个字符
string.back()获取或修改字符串最后一个字符
string.pop_back()删除字符串最后一个元素

整数型与字符串型的转化

int 转 string

string s = to_string (num);

string 转 int

int ans = atoi(s.c_str());

翻转字符串 :

 std::reverse(s.begin(), s.end());

子字符串判断

s.find(res)==string::npos//s 中查找res ,res 不是s 的子字符串
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值