C++ 使用 string 类处理字符串
构造string对象
c++中的字符串类对字符串的操作是十分方便的,也是同学们学c++必须接触的知识点
在处理string对象中,要注意的是,其下标是从0(index)开始的(0~n)
Assigning a string(为字符串赋值)
std::string w1("Hello");
w1.assign("world"); //重新设置w1这个string对象的值
std::cout<<w1<<std::endl; //运行结果:world
std::string w2("你好 世界");
w2.assign("java c++",0,4); //从0开始到第四个字符覆盖w2这个对象的字符串
std::cout<<w2<<std::endl; //运行结果:java
std::string w3("Hello");
w3.assign(1,'Q'); //1表示字符的个数,把Q这个字符给w3这个字符串给覆盖掉
std::cout<<w3<<std::endl; //运行结果:Q
Appending a string(追加字符串,就是跟在字符串的后面取值)
std::string w1("Hello");
w1.append(" World"); //就是在初始化串的后边跟上world
std::cout<<w1<<std::endl; //运行结果:Hello World
std::string w2("你好");
w2.append("世界",0,4); //追加世界 一个汉字占两个字符
std::cout<<w2<<std::endl; //运行结果 你好世界
Funtions at,clear,erase, and empty.
at(index): 返回当前的字符串中的index位置的字符.
clear() : 清空字符串.
erase(index,n) : 删除(字符串从index开始到n的第n个字符).
empty() :检测字符串是否为空 .
值得注意的是,empty()这个函数返回值类型是boolean true为空 false为非空.
它只起检测作用.
std::string a1("HelloWorld");
std::cout<<a1.at(0)<<std::endl; //返回的结果是H 0号位置是第一位
std::cout<<a1.erase(0,5)<<std::endl; //就是把第5位前面的字符都删掉
a1.clear(); //清空
std::cout<<a1.empty()<<std::endl; //只是起检测作用 由于被前面的clear()函数清空了 所以返回值为1
Comparing Strings(比较字符串)
其实在c++中,string类型的字符串是可以直接比较的.
但是在这里还是需要学习一下compare()函数的用法和功能.
std::string b1("Hellokk");
std::string b2("Hello");
std::string b3("Hello");
std::cout<<b1.compare(b2)<<std::endl; //b1这个string类的对象调用compare()函数 与b2的字符串比较
std::cout<<b2.compare(b1)<<std::endl; //同上 结果为-2
std::cout<<b3.compare(b2)<<std::endl; //结果为: 0
obtaining substring(获取子串)
at()函数用于获取一个单独的字符串.
substr()函数则可以获取一个子串.
std::string s1("HelloWorld");
std::cout<<s1.substr(0,5)<<std::endl; //获取从下标0开始到5之前的子串 结果:Hello
std::cout<<s1.substr(5)<<std::endl; //获取从下标5之后的子串 结果:World
Searching in a String(搜索字符串)
find()函数可以在一个字符串中搜索一个子串或者一个字符.
std::string s1("Welcome to C++" );
std::cout << s1.find("co") <<std::endl; // returns 3; 返回子串出现的第一个位置
std::cout << s1.find("co", 6) << std::endl; // returns -1 从6号位置开始查找子串出现的第一个位置
std::cout << s1.find('o') << std::endl; // returns 4 返回字符出现的第一个位置
std::cout << s1.find('o', 6) << std::endl; // returns 9 从6号位置开始查找字符出现的第一个位置
Inserting and replacing strings(插入和替换字符串)
insert():将某个字符/字符串插入到当前字符串的某个位置
replace(): 将本字符串从某个位置开始的一些字符替换为其他内容
std::string s1("AAAAA");
s1.insert(3,"B"); //下标为3 也就是第4个位置插入B
std::cout<<s1<<std::endl;
s1.insert(1,3,'C'); //下标1~3之间连续插入C这个字符
std::cout<<s1<<std::endl;
s1.replace(0,9,"C++天下无敌!"); //使用替换replace()函数时,一定要写清楚替换的位置
std::cout<<s1<<std::endl; //输出的结果为:C++天下无敌!
本文的c++代码按照C++98的标准规范编写。
若有问题可以关注我,也可以私信小作者qq 907372669~