字符串子串截取

简介: 字符串子串截取

1.统计子串次数

每次都去找子串,然后把字符串按本次找到的子串进行切割,对剩下的部分继续寻找子串

//统计子串出现次数
//每次都去找子串,然后把字符串按本次找到的子串进行切割,对剩下的部分继续寻找子串
string str;
getline(cin, str);
int tmp = 0;
int count = 0;
int index = str.find("yang");
while (str.find("yang") != -1) {
  count++;
  str=str.substr(str.find("yang")+4);
}
cout << count;

2.字符串转换

把非转换部分拼接进一个空子串,转换部分则进行转换再拼接。

 string replaceSpaces(string &str) {
        string res;
        for (auto x : str)
            if (x == ' ')
                res += "%20";
            else
                res += x;
        return res;
    }

3.以某一个字符分割字符串

如果时空阁直接用isringstream,如果是其它字符就先转换成空格。

#include<sstream>
//istringstream将字符串以空格为分割
  string str;
  getline(cin, str);
  istringstream is(str);
  string s;
  while (is>>s)
  {
    cout << s<<endl;
  }
  //若想将字符串以其它字符分割,可以将其该字符转化为空格
  getline(cin, str);
  string str2;
  for (auto c : str) {//将指定字符转化为空格的方式进行分割
    if (c == 'a') {
      str2 += ' ';
    }
    else {
      str2 += c;
    }
  }
  istringstream is2(str2);
  while (is2 >> s)
  {
    cout << s << endl;
  }

总结:熟悉各个以上出现的各个函数接口,方便解题!

相关文章
|
6月前
|
存储
【字符串】最长不含重复字符的子字符串
【字符串】最长不含重复字符的子字符串
|
6月前
字符拼接的深入理解
字符拼接的深入理解
29 0
|
11月前
|
C++
C++中从一个字符串中截取另一长度的子字符串
C++中从一个字符串中截取另一长度的子字符串
64 0
|
11月前
|
C++
C/C++判断字符串是否为另一字符串的子字符串
C/C++判断字符串是否为另一字符串的子字符串
135 0
|
测试技术 索引
根据首尾字符串截取中间字符串
今天分享一个函数:虽然它非常简单,但是真的很好用!也很常用!比如 “我今天真的很高兴” 这句话,要把 `今天` 截取出来,我们可以直接调用函数拿到结果,不需要匹配索引、也不用写正则!
75 0
7-121 删除字符串中的子串
7-121 删除字符串中的子串
67 0
|
JavaScript 前端开发 索引
查找字符串中的字符串
查找字符串中的字符串
84 0
|
机器学习/深度学习 算法
字符串——459. 重复的子字符串
本专栏按照数组—链表—哈希—字符串—栈与队列—二叉树—回溯—贪心—动态规划—单调栈的顺序刷题,采用代码随想录所给的刷题顺序,一个正确的刷题顺序对算法学习是非常重要的,希望对大家有帮助
|
人工智能 BI
762 字符串匹配----给定两个长度相同的字符串 a 和字符串 b。如果在某个位置 i 上,满足字符串 a 上的字符 a[i] 和字符串 b 上的字符 b[i] 相同,那么这个位置上的字符就是匹配
给定两个长度相同的字符串 aa 和字符串 bb。 如果在某个位置 ii 上,满足字符串 aa 上的字符 a[i]a[i] 和字符串 bb 上的字符 b[i]b[i] 相同,那么这个位置上的字符就是匹配的。 如果两个字符串的匹配位置的数量与字符串总长度的比值大于或等于 kk,则称两个字符串是匹配的。
283 0