C++——String类

标准库类型String类表示可变长的字符序列。

头文件:#include<string>

string定义在命名空间 std 中。

string的几种初始化方式

使用 = 来初始化为 拷贝初始化   不用 = 为 直接初始化

int main()
{
	string s1;//默认初始化 s1是空串
	cout << "s1 is :" << s1 << endl;//输出空串

	string s2("aaaaa");//直接初始化 为“aaaaa”的字符串
	cout << "s2 is :" << s2 << endl;

	string s3 = s2;//拷贝初始化 s3是s2的副本 地址不同
	cout << "s2的地址为:" << &s2 << " s3的地址为:" << &s3 << " s3 is :" << s3 << endl;
	
	string s4(10, 'c');//直接初始化 内容是十个‘c’+ 空字符
	cout << "s4 is :" << s4 << endl;
	
	string s6 = string(10, 'd');//拷贝初始化 
	cout << "s6 is :" << s6 << endl;

	string s7 = { "abcd" };//拷贝初始化
	cout << "s7 is :" << s7 << endl;

	string s8 = "dcba";//拷贝初始化
	cout << "s8 is :" << s8 << endl;

	return 0;
}

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6Zi_5qC55LiN5Lya5by5V2luZ3M=,size_11,color_FFFFFF,t_70,g_se,x_16

string上的操作

1.用cin写入时,读到流中的第一个空格就会结束。

void main()
{
	string s1;
	cin >> s1;
	cout << "s1 is :" << s1 << endl;
}

输入:abc def

输出: abc

f604fa14efee48fdb879048913868f48.png

如果想读入空格,可以使用getline(),getline()再输入流上遇到换行符停止。

void main()
{
	string s1;
	getline(cin, s1);
	cout << "s1 is :" << s1 << endl;
}

输入:abc def

输出: abc def

997776705557459cb8e0ea17f2a0cbde.png

2.string的empty()与size()

void main()
{
	string s1 = {"adc def"};
	if (!s1.empty())//判断 string对象是否为空 返回 bool 类型
	{
		cout << "s1 size is :" << (int)s1.size() << endl;//size 返回string对象的长度 返回的类型为 string::size_type 
	}
}

76b0c63cda824f3abeb1398bae99ef25.png

3.string相加

void main()
{
	string s1 = { "adc" };
	string s2 = { "def" };
	string s3 = s1 + s2;
	cout << s3 << endl;
	cout << s1 + s2 << endl;
	cout << s1 + "def" << endl;
    //cout << "abc" + "def" << endl;//会报错
}

76cadd70cba04f0eb4b101ae23d23c58.png

需要注意的是‘+’左右至少要有一个string的对象  若‘+’左右都为字面值  则会报错

4.范围for对字符串中的字符操作

void main()
{
	string s1(10,'a');
	for (auto &ch: s1)//ch是 char类型引用
	{
		ch = toupper(ch);//toupper() 返回大写形式
	}
	cout << "s1 is :" << s1 << endl;
	
	
}

1390543fda9a4c4e8e77baefb01de3c5.png

 5.string也支持下标访问

void main()
{
	string s1 = { "abcdef" };
	for (int i = 0;i<s1.size();i++)
	{
		cout << "this char is:" << s1[i] << endl;
	}
}

fa5d7f3233284770b5f2e1ab67113b71.png

 

(懒人发言)。。。。。。。。

“没了,有时间在补充。”

 

 

 

 

 

 

 

 

 

 

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值