程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> C++ string 類 學習筆記

C++ string 類 學習筆記

編輯:關於C++

string類型支持長度可變的字符串,C++標准庫將負責管理與存儲字符相關的內存,以及提供各種有用對的操作。標准庫string類型的目的就是滿足對字符串的一般應用。

 

1.string對象的定義和初始化

通過string類的構造函數來進行初始化。

常用的有:

 

 

 //默認構造函數,s1為空串
	string s1;
	//將s2初始化s1的一個副本
	string s2(s1);
	//將s3初始化為一個字符串字面值副本
	string s3("value");
	//將s4初始化為字符'c'的n個副本
	string s4(4,'c');


 

 

在C++11中定義:

default (1)

string();

copy (2)

string (const string& str);

substring (3)

string (const string& str, size_t pos, size_t len = npos);

from c-string (4)

string (const char* s);

from buffer (5)

string (const char* s, size_t n);

fill (6)

string (size_t n, char c);

range (7)

template string (InputIterator first, InputIterator last);

initializer list (8)

string (initializer_list il);

move (9)

string (string&& str) noexcept;

 

2.string對象的讀寫

讀取並忽略開頭所有的空白字符,包括空格,換行符,制表符等

讀取字符直至再次遇到空白字符

 

例如,輸入的是 “ this string class ” 則讀取的字符串為 “string”

 

	//初始化一個空的string
	string s;
	//讀取s值
	cin >> s;
	//輸出s值
	cout << s << endl;

 

 

3.string對象的常用操作

 

string類型的常用操作

S.empty()

如果S為空串,則返回true,否則返回false

S.size()

返回S中字符的個數

S[n]

返回S中位置為n的字符,位置從0開始計數

S1 + S2

把S1 和 S2連接成一個新字符串,返回新生成的字符串

S1 = S2

把S1內容替換為S2的副本

S1 == S2

比較S1和S2的內容,相等則返回true,否則返回false

!=,<,<=,>,>=

保持這些操作慣有的含義

 

 

注:size()操作返回的是string::size_type類型的值。string類類型和許多其他庫類型都定義了一些配套類型。通過這些配套類型,庫類型的使用就能與機器無關。size_type就是這些配套類型中的一種。它定義為與unsigned型具有相同的含義,而且可以保證足夠大能夠存儲任意string對象的長度。為了使用由string類型定義的size_type類型,程序員必須加上作用域操作符來說明所使用的size_type類型是由string類定義的。

 

 

保存一個string對象size的最安全的方法就是使用標准庫類型 string::size_type 。

 

從string對象獲取字符

 

string類型通過下標操作符([])來訪問string對象中的單個字符。下標操作符需要取一個size_type類型的值,來說明要訪問字符的位置。這個下標中的值通常被稱為“下標”或“索引”。

 

/*
* string class practice
* date : 2015--05--19
* @author: zhang
* version: 0.1
* compiled by g++
*/

#include 
#include 

using namespace std;

int main()
{	
	//默認構造函數,s1為空串
	string s1;
	//將s2初始化s1的一個副本
	string s2(s1);
	//將s3初始化為一個字符串字面值副本
	string s3("value");
	//將s4初始化為字符'c'的n個副本
	string s4(4,'c');

	
	//初始化一個空的string
	string s;
	//讀取s值
	cin >> s;
	//輸出s值
	cout << s << endl;

	
	//size()和empty()使用例子
	string S("this");
	cout << "the size of "<< S << " is " << S.size() <

 

 

參考文獻:

http://www.cplusplus.com/reference/string/string/string/

C++ Primer

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved