C++中String字符串查找
2024-09-01 14:04:16
在写C++程序中,总会遇到要从一个字符串中查找一小段子字符串的情况,对于在C中,我们经常用到strstr()或者strchr()这两种方法。而对于C++的string,我们往往会用到find()。
C++:#inlcude<string>
C: #include<string.h>
find():在一个字符串中查找一个指定的单个字符或字符数组。如果找到,就返回首次匹配的开始位置;如果没有查找到匹配的内容,就返回string::npos。
find_first_of():在一个目标串中进行查找,返回值是第一个与指定字符组中任何字符匹配的字符位置。如果没有查找到匹配的内容,则返回npos。
find_last_of():在一个目标串中进行查找,返回最后一个与指定字符组中任何字符匹配的字符位置。如果没有查找到匹配的内容,则返回npos。
find_first_not_of():在一个目标串中进行查找,返回第一个与指定字符组中任何字符都不匹配的元素位置。如果找不到那样的元素则返回npos。
find_last_not_of():在一个目标串中进行查找,返回下标值最大的与指定字符组中任何字符都不匹配的元素的位置。若找不到那样的元素则返回npos。
rfind():对一个串从尾至头查找一个指定的单个字符或字符组。如果找到,就返回首次匹配的开始位置;如果没有查找到匹配的内容,则返回npos。
find(string, int):第一个参数用来指示要查找的字符,第二个参数用来表示从字符串的何处开始查找子串(默认的查找位置是0)。
例子:
class Solution {
public:
int repeatedStringMatch(string A, string B) {
int len_A=A.size(),len_B=B.size();
string t=A;
int con=;
while(t.size()<len_B)
{
t=t+A;
con++;
}
if(t.find(B)!=string::npos)
return con;
t=t+A;
if(t.find(B)!=string::npos)
return con+;
else
return -; }
};
最新文章
- iOS阶段学习第35天笔记(Touch手势介绍)
- 在 Visual Studio 等编辑器/IDE中自动切换输入法,不需要手动的有没有?
- Struts2向值栈中压入属性的方式
- Redhat EL安装curses
- 【HTTP】WireShark中获取Content-Encoding: gzip时的响应内容
- OVM-V1.2 版发布,新增实时监控、支持一键升级
- 免费VPN 实测可用
- 关于Android构建
- 金额input框控制只能小数点后有两位的有效数字
- jvm性能调优---jstat的用法
- C#中Thread类中Join方法的理解(转载)
- JAVA File常用的API介绍
- linux c 之signal 和sigaction区别
- cf B. Levko and Permutation
- autotools入门笔记(一)
- 【Java每日一题】20170116
- mysql建表: 主键,外键约束
- 将Session放入Redis
- Unity UGUI
- 数据库原理剖析 - 序列1 - B+树