1.string容器基本概念
本质:
- string容器是C++风格的字符串,而string本质上是一个类;
string和char*的区别
- char*是一个指针;
- string是一个类,类内部封装了char*,管理这个字符串,是一个char*型的容器;
特点:
string内部封装了很多成员方法,类似find,copy,delete,replace,insertd等;
string管理char*所分配的内存,不用担心复制越界和取值越界等,由类内部进行负责;
2 string构造函数
构造函数原型
#icnlude<iostream>
#include<string>
using namespace std;
/**
sting();//创建一个空的字符串,例如string str;
string(const char* s);//使用字符串s初始化;
string(const string& str); //使用一个string对象初始化另一个对象
string(int n,char c);//使用n个字符c初始化;
*/
test01()
{
string s1;
const char *str = "hello world";
string s2(str);
string s3(s2);
string s4(10,a);
}
int main()
{
test01();
return 0
}
3 string 赋值操作
给string字符串进行赋值;
4 string 字符串拼接
实现字符串末尾拼接字符串
void test01()
{
string str1 = "我";
str1+="想成功";
cout << str1 <<endl;//输出结果:我想成功;
//append方法拼接字符串;
string str3 = "I";
str3.append("love");
cout << str3 <<endl;//输出结果:Ilove
str3.append("whoever",3);
cout << str3 <<endl;//输出结果:Ilovewho
str3.append(str1);
cout << str3<< endl;//输出结果:Ilovewho我想成功;
str3.append("真好啊难道不是吗?",2 ,5)//
cout << str3<<endl;//输出结果:Ilovewho我想成功啊难道不是
}
int main()
{
test01();
return 0;
}
5string查找和替换
查找:查找指定字符串是否存在
替换:在指定的位置替换字符串
void test01()
{
string str = "abcdefg";
int pos = str.find("de");
cout << pos<<endl;//输出结果:3【d首次出现的位置,如果没有查到,测返回-1】
//rfind方法
pos = str.rfind("de");
cout << pos<< endl;//输出结果:3【rfind是从右往左找】
//替换方法
}
void test02()
{
string str = "abcdefg";
str.replace(1,3,"1111");
cout << str<< endl;//输出结果:a1111efg;【cong1号位置起,3个字符替换为“1111”】
}
int main()
{
test01();
test02();
return 0.
}
6 字符串比较
功能描述:字符串之间的比较
void test01()
{
string str1 = "hello";
string str2 = "hello";
if(str1.compare(str2) == 0)
{
cout << "两个字符串相等" << endl;
}
else if(str1.compare(str2) >0)
{
cout << "str1大于str2" << endl;
}else if(str1.compare(str2))
{
cout << "str1小于str2" << endl;
}
}
int main()
{
test01();
return 0;
}
7string字符存取
string中单个字符存取方式有两种
void test01()
{
string str = "hello";
cout << str<< endl;
//1.通过[]方法取字符
for(int i = 0;i < str.size();i++)
{
cout << str[i]<< " ";
}
//2.通过at方法获取字符
for(int i = 0;i<str.size();i++)
{
cout << str.at(i)<< endl;
//修改字符
str.at(2)= X;
cout << str.at(i)<<endl;//输出结果:heXlo;
}
}
8 string插入和删除
功能描述:对string字符串进行插入和删除字符操作
void test01()
{
string str = "hello";
//插入
str.insert(1,"111");
cout <<str<< endl;//输出结果;h111ello
//删除
str.erase(1,3);//1是1的下标位置,3是删掉3个元素
cout << str<< endl;//输出结果:hello
}
9strig字串
功能描述:从字符串中获取想要的字串
void test01()
{
string str = "abcdefgh"l
string strSub = str.substr(1,3);
cout << strSub << endl;//输出结果:bcd;
}
void test02()
{
//从邮件中截取用户信息
string email = "zhangsan@qq.com";
int pos = email.find("@");
string userName = email.substr(0,pos);
cout << userName << endl;//输出结果:zhangsan;
}
int main()
{
test01();
test02();
return 0;
}