string对象上的操作

Posted wuduojia

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了string对象上的操作相关的知识,希望对你有一定的参考价值。

 

//读写string对象的测试
#include <iostream>
#include <string>
using std::cin;
using std::cout;
using std::endl;
int main()
{
	//未初始化的为空string
	std::string s, ss;
	//和以前一样,">>"最终会返回左侧操作符(先把键盘输入存入对象再返回操作符),所以可以连续输入和输出
	/*
	*执行读取操作时,string对象会自动忽略开头的空白(空格符、换行符、制表符等)并从第一个真正的字符开始读起,直到遇到下个空白为止
	*这意味着你输入“  哈哈 ”,输出的是没有空格的“哈哈”
	*/
	cin >> s >> ss;
	/*
	*如果s存了一个字符,s[2]不存在,则程序运行到这崩溃;
	*如果s存了2个字符,s[2]输出空字符
	*/
	cout << "——" << s[2] << "——" << endl;
	//输出的字符串不会输出空字符
	cout << s << ss << endl;
	system("pause");
	return 0;
}

 

//读取未知数量的string对象的测试
/*
*注意,这里的未知数量指的不是未知字符串,而是string对象——可以这样理解,一个string对象存的字符串、数字等是不能出现空格的。
*(这个理解是错的,因为马上后面的getline函数就可以实现保存空白符的功能。真正的理解是,一个对象可以保持相当数量的字符串,所以字符串的长短和对象的多少没有关系)
*/
#include <iostream>
#include <string>
using std::cin;
using std::cout;
using std::endl;
int main()
{
	std::string word;
	//非法输入或者文件终止符:ctrl+z可以终止循环 
	while (cin >> word)
		/*
		*和我原来想的不一样....我原来以为是全部输入完了再输出,我错了,这是一个while,每次输入都会执行其体内的语句
		*仔细想想这好像是个不应该存在的功能。你输入的内容并不需要当作输出再输出一次,因为你输入的内容本身就可以显示在屏幕上了。
		*所以只需要是一个没有循环体的while (cin >> word)就可以把你想显示在屏幕上的内容显示出来了。
		*/
		cout << word << endl;
}

  

 

  

  

 

以上是关于string对象上的操作的主要内容,如果未能解决你的问题,请参考以下文章

导航上的片段生命周期重叠

Android - 如何将自定义对象传递给片段

方法与对象内存分析

浮动操作按钮 onClick 上的 viewPagerAdapter 片段 NullPointerException

代码片段 - Golang 实现集合操作

关于将 string::swap() 与临时对象一起使用的问题