最近在接受c++入行向培訓,因為本人之前學過一點c#,知道c#的string類型非常好用。但開始學c++發現string居然不是c++的基本類型,不科學啊!正好老師留個作業,要求整理c++的string類用法,於是就研究了一下。
1.string常見的定義與初始化方法
//本文所有示例默認都需要引入<string>頭文件,下同。 #include <string>
//string的默認構造函數,定義的s1為空。 string s1; //建立一個變量名為s2的字符串,內容與s1相同。 string s2(s1); //建立一個變量名為s3的字符串,內容為“string”。 string s3("string"); //建立一個變量名為s4的字符串,內容為20個'-'(不包括單引號)。 string s4(20,'-');
2.string對象的讀寫
string s; //需要<iostream>頭文件的支持。 std::cin >> s; std::cout << s <<endl;
3.string對象的操作
//如果s字符串為空,則返回true,否則返回false, //並將結果存入變量isEmpty。 bool isEmpty=s.empty(); //返回s字符串中的字符個數,並將結果存入變量i。 //注意:這里的s.size()值並不是int型,但可以直接隱式轉換為int。 int i=s.size(); //顯示s字串中第Count個字符(位置從0開始)。 int Count; cin >> Count; cout << s[Count] << endl; //將s1與s2連接為一個新的字符串並存入s3。 s3=s1+s2; //比較變量s1與s2的內容,相等返回true,否則返回false, //並將結果存入變量isSame; bool isSame=(s1==s2); //清除s內的所有內容。 s.clear;
4.string對象的常用方法
#include "stdafx.h" #include <iostream> #include <string> using namespace std; int main() { //變量初始化。 string String1 = "HelloWorld!ILoveCpp!"; string String2 = "CodingChangeTheWorld!"; //assign,將字符串String1的第5個字符開始的6個字符存入String1。 //此部分代碼運行結果為“World!”。 String1.assign(String1,5,6); cout << String1 <<endl; //將字符串String2的第6個字符開始的6個字符存入String1。 //此部分代碼運行結果為“Change”。 String1.assign(String2,6,6); cout << String1 << endl << endl; String1 = "HelloWorld!ILoveCpp!"; String2 = "CodingChangeTheWorld!"; //將字符串String2連接到String1的末尾,並存入String1。 //此部分代碼運行結果為“HelloWorld!ILoveCpp!CodingChangeTheWorld!”。 String1.append(String2); cout << String1 << endl; //將字符串String2的第6個字符開始的6個字符連接到String1的末尾。 //此部分代碼運行結果為“HelloWorld!ILoveCpp!CodingChangeTheWorld!Change”。 String1.append(String2,6,6); cout << String1 << endl << endl; String1 = "HelloWorld!ILoveCpp!"; String2 = "CodingChangeTheWorld!"; //返回”Change“在String2字符中的位置(注意:從0開始)。 //此部分代碼運行結果為“6”. cout << String2.find("Change") << endl << endl; String1 = "HelloWorld!ILoveCpp!"; String2 = "CodingChangeTheWorld!"; //將String2插入String1的第11個字符后。 //此部分代碼運行結果為“HelloWorld!CodingChangeTheWorld!ILoveCpp!”。 String1.insert(11,String2); cout << String1 << endl << endl; //返回String1的長度(注意:從0開始)。 //此部分代碼運行結果為“41”。 cout << String1.length() << endl << endl; system("pause"); return 0; }
參考文獻:
《C++Primer中文第四版》人民郵電出版社
《C++ Gossip: 使用 string 型態》 http://openhome.cc/Gossip/CppGossip/string2.html