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对象上的操作的主要内容,如果未能解决你的问题,请参考以下文章