网站建设的课程都需要什么,网站建设数据库实训体会,西安网站开发高端网站开发,网页设计相关网站前言
上篇文章#xff0c;我们学习了assign、at、append这三个函数
今天#xff0c;我们来学习find、 函数
find函数
引入
我们都知道#xff0c;find函数可以是string类中#xff0c;用于查找字符或者字符串的函数 也可以是#xff0c;algorithm头文件中我们学习了assign、at、append这三个函数
今天我们来学习find、 函数
find函数
引入
我们都知道find函数可以是string类中用于查找字符或者字符串的函数 也可以是algorithm头文件中的一种算法用于在任何容器中查找想要的元素这个用法以后再说下文只学习find函数是如何在字符串中查找字符的
函数形式
size_t find(const string str, size_t pos 0)const;
size_t find(const char* s, size_t pos 0)const;
size_t find(const char* s, size_t pos, size_t n)const;
size_t find(char c, size_t pos 0)const;使用方式
str.find(xx);str是要查找的字符串、xx是要查找的内容
返回值
如果查找成功find()函数返回子串或字符在字符串中第一次出现的位置字符串第一个字符下标是0否则返回一个特殊值string::npos表示查找失败。 在C中npos是一个特殊的无符号整数值表示一个不可能的位置或大小。它的值是最大的可能大小即size_t(-1) 要是转换成有符号整型输出结果就是-1 使用例子
下面给出一个例子方便大家理解
#includeiostream
#includestringusing namespace std;int main()
{string str hello,world;cout str.find(world) endl;cout str.find(w) endl;cout str.find(a) endl;cout (int)str.find(a) endl;return 0;
}运行结果
注意 find函数只能查找子串在字符串中第一次出现的位置如果想多次查找可以通过循环结构和改变find函数的第二个参数起始位置pospos默认为0即第一个元素来实现
rfind函数
接下来我们来学习rfind函数 rfind函数和find函数很像只不过find函数是从第一个元素开始查找rfind函数是从最后一个
逆向查找字符或字符串若查找成功则返回逆向查到的第一个字符下标或第一个字符串首字符的下标若查找失败无法返回正确的下标。 逆向查到的第一个字符或第一个字符串也就是正向的最后一个。rfind()函数的返回值为无符号整数类型。
replace函数
不做详细介绍 只介绍一下它的基本功能和给出一个使用示例
replace虽然使用的时候有一些局限性即不能超出原字符串的大小 但功能还是很多的
基本功能
replace意思是替换 即将字符串中的某些字符替换成其他的字符
语法格式
用法一
三个参数 第一个是下标pos 寻找的字符的位置 第二个是整型数据n 即从pos开始向后修改几个字符 第三个是字符串str1
这种用法就是 将pos后面n个字符修改为str1中的字符
也可以理解为 replace函数先将pos后的n个字符截取掉 再将str1放在pos后面
#includeiostreamusing namespace std;int main()
{string str Hello World;str str.replace(str.find(o), 2, X);cout str endl;str Hello World;str str.replace(str.find(o), 1, XXXX);cout str endl;str Hello World;str str.replace(str.find(o), 2, XXXX);cout str endl;return 0;
}运行结果
用法二
三个参数 起始位置pos1即从pos1开始替换 终止位置pos2到pos2停止替换 字符串str1用str1进行替换
这种用法 将从pos1到pos2的所有字符替换成字符串str1
下面给出一个例子
#includeiostreamusing namespace std;int main()
{string str Hello world;str str.replace(str.begin(), str.begin() 3, hddddddd);cout str;return 0;
}运行结果
用法三
五个参数 pos1原字符串的起始替换位置 pos2原字符串的替换终止位置 str1要替换的字符串 pos3str1的起始位置 n从pos3开始替换n个字符
这种用法就是将原字符串中从pos1到pos2的所有字符替换成str1中从pos3开始的n个字符
下面给出一个例子
#includeiostreamusing namespace std;int main()
{string str Hello world;string str1 nice to meet you;str str.replace(0, 3, str1, str1.find(c), 3);cout str endl;return 0;
}用法四
四个参数 pos1替换的开始位置 pos2替换的结束位置 n替换的个数 ch要进行替换的字符
作用就是 将str中从pos1 到pos2的子串替换为n个ch
下面给出一个例子
#includeiostreamusing namespace std;int main()
{string str Hello wolrd;char ch #;str str.replace(0, 5, 3, ch);cout str endl;return 0;
}运行结果 compare
这个函数的作用就是比较两个字符串是否相等
语法格式
str1.compare(str2);通过字典序来比较
str1大就返回一个大于0的数 不然就返回一个小于0的数
下面给出一个例子
#includeiostreamusing namespace std;int main()
{string str1 Hello;string str2 world;int ret str1.compare(str2);if (ret 0){cout endl;}else if (ret 0){cout endl;}else{cout endl;}return 0;
}结语
本篇文章介绍了find、rfind、replace、compare这些函数希望对你有帮助
我们下篇文章见~