C++(17):STL之string初步

string要和文件操作、stringstream一起复习!

Review:文件操作
Review:stringstream


废话不多说。直接上代码。

	string s("This is a 汉语句子。");
	cout<<s<<endl;
	cout<<s.empty()<<endl;
 	string::size_type string_size = s.size(); // 返回字符串s的总字符数
 	cout<<"size:"<<string_size<<endl;
	string::size_type len = s.length();
	cout<<"len:"<<len<<endl;
	auto size2 = s.size();
	cout<<size2<<endl;

This is a 汉语句子。
0
size:20
len:20
20

// 建议,调用size的时候,写auto 变量名;

// string::size_type 无符号的整形,和int型不一样!!

	// cin>>s; // 遇到空白或换行就结束! 和getline不一样!
	// cout<<s<<endl;

	getline(cin,s); // 直到“换行”才结束!
	cout<<s<<endl;

// cin 和 getline 的处理方式不一样!

// getline函数的第一个参数,也可以写为 fstream类型的变量

// fstream ifs(filePath,ios::in); string s;

// getline(ifs,s);

	string s1 = "a/";
	string s2 = "a";
	cout<<(s1==s2)<<endl;
	string::size_type i = s1.length();
	cout<<i<<endl;
s1和s2是不一样的!

s1的字符串个数是2,s2的是1。

	string s3 = "ABCcdEfg"; 
	transform(s3.begin(),s3.end(),s3.begin(),::tolower);
	cout<<s3<<endl;
对transform函数的说明。
//first1是第一个容器的首迭代器,last1为第一个容器的末迭代器,
first2为第二个容器的首迭代器,result为存放结果的容器,
binary_op为要进行操作的二元函数对象或sturct、class。  */

对string中的字符进行操作

	string s4 = "ABC啊";
	cout<<s4.at(s4.length()-1)<<endl; // 也不能输出 “啊” // 因为一个汉字占了2个字符!
	cout<<s4.at(s4.length()-3)<<endl; // 可以输出“C”
	for (auto & c : s4) // 有汉字,就取不出来了!
	{ 
		c = toupper(c); // 引用传递! // 所以s4会全部变成大写
		cout<<c<<endl;
	}


string的随机访问

	string s5 = "cdefg";
	cout<<s5[0]<<endl;

string相加。

	string sa = "abc";
	sa += "def";
	string sb = "ghi";
	string sc = sa + sb;

	cout<<sa<<endl;
	cout<<sb<<endl;
	cout<<sc<<endl;
要保证加号两边,至少有一个是string。"asdf"+"asdf"是不允许的。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qcyfred

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值