1. 程式人生 > >(8)string對象上的操作

(8)string對象上的操作

制表符 忽略 nbsp ctrl+ sin 全部 2個 多少 use

//讀寫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;
}

  

  

  

(8)string對象上的操作