从c走向c++之字符串类的使用

c语言没有提供string类型,只能用char字符数组来代替,感觉麻烦,这里介绍一种字符串对象

参考:https://www.cnblogs.com/lifexy/p/8642163.html

引用头文件:   

 #include <string>

注意:string对象不要和char 数组混用,不然会出现其他结果

string类常用的构造函数有:

string str; //生成一个空字符串
string str ("ABC") //等价于 str="ABC"
string str ("ABC", strlen) // 将"ABC"存到str里,最多存储前strlen个字节
string s("ABC",stridx,strlen) //将"ABC"的stridx位置,做为字符串开头,存到str里.且最多存储strlen个字节.
string s(strlen, 'A') //存储strlen个'A'到str里

string类常用的成员函数有:

str1.assign("ABC");        //清空string串,然后设置string串为"ABC"
str1.length(); //获取字符串长度
str1.size();            //获取字符串数量,等价于length()
str1.capacity();         //获取容量,容量包含了当前string里不必增加内存就能使用的字符数
str1.resize(10);       //表示设置当前string里的串大小,若设置大小大于当前串长度,则用字符\0来填充多余的.
str1.resize(10,char c);     //设置串大小,若设置大小大于当前串长度,则用字符c来填充多余的
str1.reserve(10);         //设置string里的串容量,不会填充数据.
str1.swap(str2);    //替换str1 和 str2 的字符串
str1.puch_back ('A');   //在str1末尾添加一个'A'字符,参数必须是字符形式
str1.append ("ABC");   //在str1末尾添加一个"ABC"字符串,参数必须是字符串形式
str1.insert (2,"ABC"); //在str1的下标为2的位置,插入"ABC"
str1.erase(2);     //删除下标为2的位置,比如: "ABCD" --> "AB"
str1.erase(2,1); //从下标为2的位置删除1个,比如: "ABCD" --> "ABD"
str1.clear();    //删除所有
str1.replace(2,4, "ABCD"); //从下标为2的位置,替换4个字节,为"ABCD"
str1.empty();    //判断为空, 为空返回true
/*assign() :赋值函数 ,里面会重新释放分配字符串内存 */
str1.assign("HELLO"); //str1="HELLO"
str1.assign("HELLO", 4); //str1="HELL" ,只保留4个字符
str1.assign("HELLO", 2, 3); //str1="LLO" ,从位置2开始,只保留3个字符
str1.assign(5, 'c'); //str1="CCCCC" //按字符赋值

操作实例:(代码部分)

 #include <iostream>

#include <string>
using namespace std;

int main(){

string str; //生成一个空字符串
// string str ("ABC"); //等价于 str="ABC"
// string str ("ABC", strlen) // 将"ABC"存到str里,最多存储前strlen个字节
// string s("ABC",stridx,strlen) //将"ABC"的stridx位置,做为字符串开头,存到str里.且最多存储strlen个字节.
// string s(strlen, 'A') //存储strlen个'A'到str里
cin>>str;//输入字符串,回车键确认,不包含空格字符
cout<<str<<endl;//输出字符串
cout<<str.size();//输出字符串大小
return 0;
}

猜你喜欢

转载自www.cnblogs.com/xiaojiansuibi/p/12347506.html