C++學習筆記(二) —— 標準庫String類

1. string支持的幾個構造函數:

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





========================================================================

例子:s1和s2的值是多少?

#include <iostream>
#include <string>

using namespace std;
string s;


int main()
{
string s1;
cout << "s: " << s << endl;
cout << "s1: " << s1 << endl;


return 0;
}

*******************************************************************

結果:均爲空字符串

s: 
s1: 

*******************************************************************

========================================================================

2. string類的讀寫

2.1 從標準輸入讀取string,並將讀入的串存儲在s中。string類型的輸入操作符:

2.1.1 讀取並忽略開頭所有的空白字符(如空格、換行符、製表符等);

2.1.2 讀取字符直至再次遇到空白字符,讀取終止。

******************************************************************

例子:

<span style="font-size:18px;"><span style="font-size:18px;">#include <iostream>
#include <string>

using namespace std;

int main()
{
	string s1;
	cin >> s1;
	cout << "s1: " << s1 << endl;

	return 0;
}</span></span>
 結果:

輸入爲 "   hello world  "

輸出爲 "hello"

******************************************************************

2.2 getline函數

getline(istream &in, string &s)
從輸入流讀入一行到string s
•功能:
–從輸入流中讀入字符,存到string變量
–直到出現以下情況爲止:
•讀入了文件結束標誌
•讀到一個新行
•達到字符串的最大長度
–如果getline沒有讀入字符,將返回false,可用於判斷文件是否結束

=====================================================

注意:由於getline函數返回時丟棄換行符,換行符將不會存儲在string對象中。

=====================================================


3. string 的操作:

s.empty() 如果s爲空串,則返回true,否則返回false
s.size() 返回s中字符的個數
s[n] 返回s中位置爲n的字符,位置從0開始計數
s1+s2 把s1和s2連接成一個新字符串,返回新生成的字符串
s1 = s2 把s1內容替換爲s2的副本
v1 == v2 比較v1與v2的內容,相等則返回true,否則返回false
!=   <   <=   保持這些操作符慣有的含義
>   >= 保持這些操作符慣有的含義

3.1 s.size()  返回值的類型爲:string::size_type類型。注意:不要將其返回值賦值給int型。

3.2 +

當進行string對象和字符串字面值混合連接操作時,+操作符的左右操作數必須至少有一個是string類型的。

注意字符串字面值是常量。

3.3 s[n]

引用下標是從0開始的。並且超出下標應用範圍,將溢出。可計算下標值,例如:s[n1+n2] n1、n2:整型

3.4 string對象中字符的處理

這些函數都在cctyoe頭文件中定義

isalnum(c) 如果c是字母或者數字,則爲true
isalpha(c) 如果c是字母,則爲true
iscntrl(c) 如果c是控制字符,則爲true
isdigit(c) 如果c是數字,則爲true
isgraph(c) 如果c不是空格,但可打印,則爲true
islower(c) 如果c是小寫字母,則爲true
isprint(c) 如果c是可打印的字符,則爲true
ispunct(c) 如果c是標點符號,則爲true
isupper(c) 如果c是大寫字母,則爲true
tolower(c) 如果c是大寫字母,則返回其小寫字母形式,否則直接返回c
toupper(c) 如果c是小寫字母,則返回其大寫字母形式,否則直接返回c
isxdigit(c) 如果c是十六進制,則爲true
isspace(c) 如果c是空白字符,則爲true


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章