C++中的String的常用函数用法总结
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C++中的String的常用函数用法总结,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4940字,纯文字阅读大概需要8分钟。
内容图文
![C++中的String的常用函数用法总结](/upload/InfoBanner/zyjiaocheng/592/f1cc977c3f544779beb5c245c50298d8.jpg)
1. string的构造函数
string str1; //生成空字符串 string str2("123456789"); //生成"1234456789"的复制品 string str3("12345", 0, 3);//结果为"123" string str4("012345", 5); //结果为"01234" string str5(5, '1'); //结果为"11111" string str6(str2, 2); //结果为"3456789"
2. string的大小
size()和length():返回string对象的字符个数,他们执行效果相同。
3. string的插入:push_back() 和 insert()
// 尾插一个字符 s1.push_back('a'); s1.push_back('b'); s1.push_back('c'); cout<<"s1:"<<s1<<endl; // s1:abc
// insert(pos,char):在制定的位置pos前插入字符char s1.insert(s1.begin(),'1'); cout<<"s1:"<<s1<<endl; // s1:1abc
4. string的返回:front() 和 back()
string a="abcd"; 1.获取字符串最后一个字符 auto b=a.back(); //结果为 b='d'; 2.修改字符串最后一个字符 a.back()='!'; //结果为 a="abc!"; 3.获取字符串第一个字符 auto b=a.front(); //结果为 b='a'; 4.修改字符串第一个字符 a.front()='!'; //结果为 a="!bcd";
5. string拼接字符串:append() 、+ 操作符
// 方法一:append() string s1("abc"); s1.append("def"); cout<<"s1:"<<s1<<endl; // s1:abcdef // 方法二:+ 操作符 string s2 = "abc"; /*s2 += "def";*/ string s3 = "def"; s2 += s3; cout<<"s2:"<<s2<<endl; // s2:abcdef
6. string的遍历:迭代器或者下标法
string s1("abcdef"); // 调用一次构造函数 // 方法一: 下标法 for( int i = 0; i < s1.size() ; i++ ) { cout<<s1[i]; } // 方法二:正向迭代器 string::iterator iter = s1.begin(); for( ; iter < s1.end() ; iter++) { cout<<*iter; } // 方法三:反向迭代器 string::reverse_iterator riter = s1.rbegin(); for( ; riter < s1.rend() ; riter++) { cout<<*riter; } cout<<endl;
7. string的删除:erase()
(1). basic_string & erase(size_type pos=0, size_type n=npos);
从给定起始位置pos处开始删除, 要删除字符的长度为n, 返回修改后的string对象引用
string str = "hello c++! +++"; // 从位置pos=10处开始删除,直到结尾,即删除 " +++" str.erase(10); cout << str << endl; // “hello c++!” // 从位置pos=6处开始,删除4个字符,即删除 "c++!" str.erase(6, 4); cout << str << endl; //“hello ”
(2). iterator erase(const_iterator position)
删除迭代器位置处的单个字符, 并返回下个元素的迭代器
string str = "hello c++! +++"; // 删除"+++"前的一个空格 str.erase(str.begin()+10); cout << str << endl; //"hello c++!+++"
(3). iterator erase(const_iterator first, const_iterator last)
删除迭代器[first, last)区间的所有字符,返回一个指向被删除的最后一个元素的下一个字符的迭代器
string str = "hello c++! +++"; // 删除" +++" str.erase(str.begin() + 10, str.end()); cout << str << endl; // "hello c++!"
8. string的字符替换
1. string& replace(size_t pos, size_t n, const char *s);//将当前字符串从pos索引开始的n个字符,替换成字符串s 2. string& replace(size_t pos, size_t n, size_t n1, char c); //将当前字符串从pos索引开始的n个字符,替换成n1个字符c 3. string& replace(iterator i1, iterator i2, const char* s);//将当前字符串[i1,i2)区间中的字符串替换为字符串s
string s1("hello,world!"); cout<<s1.size()<<endl; // 结果:12 s1.replace(s1.size()-1,1,1,'.'); // 结果:hello,world. // 这里的6表示下标 5表示长度 s1.replace(6,5,"girl"); // 结果:hello,girl. // s1.begin(),s1.begin()+5 是左闭右开区间 s1.replace(s1.begin(),s1.begin()+5,"boy"); // 结果:boy,girl.
9. string的大小写转换:tolower()和toupper()函数
10. string的查找:find
1. size_t find (constchar* s, size_t pos = 0) const;//在当前字符串的pos索引位置开始,查找子串s,返回找到的位置索引,-1表示查找不到子串 2. size_t find (charc, size_t pos = 0) const;//在当前字符串的pos索引位置开始,查找字符c,返回找到的位置索引,-1表示查找不到字符 3. size_t rfind (constchar* s, size_t pos = npos) const;//在当前字符串的pos索引位置开始,反向查找子串s,返回找到的位置索引,-1表示查找不到子串 4. size_t rfind (charc, size_t pos = npos) const;//在当前字符串的pos索引位置开始,反向查找字符c,返回找到的位置索引,-1表示查找不到字符 5. size_tfind_first_of (const char* s, size_t pos = 0) const;//在当前字符串的pos索引位置开始,查找子串s的字符,返回找到的位置索引,-1表示查找不到字符 6. size_tfind_first_not_of (const char* s, size_t pos = 0) const;//在当前字符串的pos索引位置开始,查找第一个不位于子串s的字符,返回找到的位置索引,-1表示查找不到字符 7. size_t find_last_of(const char* s, size_t pos = npos) const;//在当前字符串的pos索引位置开始,查找最后一个位于子串s的字符,返回找到的位置索引,-1表示查找不到字符 8. size_tfind_last_not_of (const char* s, size_t pos = npos) const;//在当前字符串的pos索引位置开始,查找最后一个不位于子串s的字符,返回找到的位置索引,-1表示查找不到子串
11. string的排序:sort(s.begin(),s.end())
12. string的分割/截取字符串:strtok() & substr()
//strtok():分割字符串 char str[] = "I,am,a,student; hello world!"; const char *split = ",; !"; char *p2 = strtok(str,split); while( p2 != NULL ) { cout<<p2<<endl; p2 = strtok(NULL,split); }
string s1("0123456789"); string s2 = s1.substr(2,5); //参数5表示:截取的字符串的长度 cout<<s2<<endl; // 结果为23456
参考博客:
https://blog.csdn.net/qq_37941471/article/details/82107077
https://blog.csdn.net/u010472607/article/details/80431604
https://blog.csdn.net/qq_40630246/article/details/103646009
内容总结
以上是互联网集市为您收集整理的C++中的String的常用函数用法总结全部内容,希望文章能够帮你解决C++中的String的常用函数用法总结所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。