C++入门(20):字符串
来源:互联网 发布:hp1010墨盒清零软件 编辑:程序博客网 时间:2024/05/01 10:48
C++入门(20):字符串
字符串
提取子字符串 substr() :返回当前字符串的一部分。常见的有两个输入参数的重载函数为:第一个参数表明从哪个位置开始提取子字符串,是一个从0开始的整数值;第二个参数是子字符串的长度。
比较字符串 compare() ;
如果字符串里什么也没有(一个空字符串),empty()函数将返回true值 。
添加字符串
字符串拼接 + :可以用来把一些新文本追加到一个字符串的末尾 ,像 append() 函数一样 ;
append()函数还可以把同样的字符多次追加到一个现有的字符串的末尾 ;
insert()函数:第一个参数代表一个起点位置,第二个参数是将被插入的字符串 ;
replace()函数:第一个参数代表一个起点位置,第二个参数表示想替换多少个字符,第三个参数是替换字符串。
示例代码如下:
#include <iostream>#include <string>#include <cctype>int main(int argc, char** argv) { std::string s1 = "xiuxiuJessica" ; int a = s1.size() ; std::cout << a << std::endl; std::string s2 = s1.substr(1,5) ; //如果原字符串不够长,则提取到它的最后一个字符 std::cout << s2 << std::endl; std::string s3 = "xiuxiujuice"; int b = s3.compare(s1) ; //如果s3>s1,返回正值;如果s3<s1,返回负值;如果s3==s1,返回0; std::cout << b << std::endl; //返回 1 std::string s4 = "" ; if(s4.empty()) { std::cout << "s4 is empty." << std::endl; } s4 += "Hello" ; std::cout << s4 << std::endl; s4 += 'A'; std::cout << s4 << std::endl; s4 += s3; std::cout << s4 << std::endl; std::string s5 = "ABC"; s5.append(",abc"); std::cout << s5 << std::endl; s5.append(s1); std::cout << s5 << std::endl; s5.append(3,'!'); //两个参数,第一个参数是添加的次数,第二个参数是要添加的字符。此处为添加3个!到s5后面 std::cout << s5 << std::endl; std::string s6 = "abc" ; s6.insert(3,"ABC") ; std::cout << s6 << std::endl; std::string s7 = "xiuxiu" ; s7.replace(3,2,"XI"); //从第3个位置开始的2个字符替换,位置从0开始 std::cout << s7 << std::endl; s7.replace(3,2,"xiuxiu"); //如果替换字符串个数"xiuxiu"大于2,则全部替换,原字符串其余部分不变 std::cout << s7 << std::endl; std::string s8 = "Jessica" ; s8.replace(2,1,3,'A'); //在第2个位置替换一个字符,替换 3 遍 std::cout << s8 << std::endl; return 0;}
运行结果为:
13iuxiu1s4 is empty.HelloHelloAHelloAxiuxiujuiceABC,abcABC,abcxiuxiuJessicaABC,abcxiuxiuJessica!!!abcABCxiuXIuxiuxiuxiuuJeAAAsica
搜索字符串:
1) 区分字母大小写;
2) 如果未能找到一个匹配,所有这些搜索函数将返回一个常量值string::npos
。可以把这个常量用在一个条件语句里以判断是否找到了一个匹配。
find():它将返回被搜索字符或字符串在给定字符串里第一次出现时的起始位置;第二个参数可选,表明想从什么地方开始搜索字符串(默认值是0)。
rfind() 函数和find()功能相同,唯一区别是 rfind()从字符串的末尾开始搜索字符串,但返回值仍是从字符串开头算起的起始位置——如果找到了匹配的话。
find_first_of() 函数可以用来寻找一组字符中的任何字符在给定字符串里第一次出现的位置;相反地, find_first_not_of() 用来寻找一组字符中的任何字符在给定字符串里第一次没有出现的位置。
find_last_of() 函数可以用来寻找一组字符中的任何字符在给定字符串里最后一次出现的位置;相反地, find_last_not_of() 用来寻找一组字符中的任何字符在给定字符串里最后一次没有出现的位置。
erase() 函数:第一个参数是一个用来表明从什么地方开始删除的起始位置,第二个参数是一个用来表明需要删除多少个字符的整数。
capacity()函数:返回为给定字符串当前分配的内存空间,即它现在可以容纳多少个字符。
reserve()函数:用来申请更多的存储空间。
示例代码如下:
int main(int argc, char** argv) { std::string ss1 = "I am Jessica and I am xiuxiu too."; unsigned int start = ss1.find("Jessica"); std::cout << start << std::endl; unsigned int start1 = ss1.find("Jessica",3); // 结果还是5。如果没有找到,编译不会出错,当返回值是无符号时,返回大的整数,当返回值是int时,返回-1 ,返回随机数 std::cout << start1 << std::endl; std::cout << ss1.size() << std::endl; unsigned int a1 = ss1.find_first_of("aeiou"); std::cout << a1 << std::endl; unsigned int a2 = ss1.find_first_not_of("aeiou"); std::cout << a2 << std::endl; unsigned int a3 = ss1.find_last_of("aeiou"); std::cout << a3 << std::endl; unsigned int a4 = ss1.find_last_not_of("aeiou"); std::cout << a4 << std::endl; if(ss1.find("xiuxiu") != std::string::npos) { std::cout << "Got it!" << std::endl; } else { std::cout << "Can't find it." << std::endl; } ss1.erase(5,6); //从第五个字符开始删除6个字符 std::cout << ss1 << std::endl; ss1.erase(5); //从第五个字符开始到结束全部删除 std::cout << ss1 << std::endl; std::cout << ss1.capacity() << std::endl;
运行结果为:
55332031 //31是下标32Got it!I am a and I am xiuxiu too.I am33
C++入门(19):向量与迭代器
- C语言入门----字符串
- Objective-C入门12:字符串
- 【字符串入门专题1】C
- C语言入门:字符串排序
- C++入门(20):字符串
- C语言入门(18)——数组与字符串
- C++/CLI学习入门(四):字符串(转)
- C++入门(21):二进制文件、C风格字符串
- c语言入门:指针运用 (用逗号切割字符串)
- iOS概念入门学习-C语言-字符串
- C 字符串(C-style 字符串)
- C语言学习入门 (四) 字符串、字符串数组、字符和字符串相关函数
- C语言学习入门 (四) 字符串、字符串数组、字符和字符串相关函数
- 字符串截取(C#)
- 字符串分割(C++)
- 字符串(C语言)
- 字符串操作(C++)
- AJAX入门(C#)
- 一个简易TCP服务器的多种实现
- vs2010 如何快速查看 别人工程代码
- 用Spark实现K-means(scala:面向函数式编程风格)
- java上传文件跟批量下载文件
- Android 基于Message的进程间通信
- C++入门(20):字符串
- AutoCompleteTextView的简单使用
- nodejs-post文件上传原理详解
- WebDriverWait
- ajax传递给后台数组参数方式
- 安卓修改过源码之后如何给生成的app进行系统签名
- PHP完整的MySQL数据库操作类
- Java开发必会的Linux命令
- [Computer and Network Security] Programming with OpenSSL