(8)string對象上的操作
阿新 • • 發佈:2017-10-13
制表符 忽略 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對象上的操作