1. 程式人生 > >標準庫型別基礎(1)— string

標準庫型別基礎(1)— string

0、都已包含響應庫函式並已進行using宣告。

1、string初始化

string s1;                      //預設建構函式,s1為空字串
string s2(s1);                  //將s2初始化為s1的一個副本
string s3("value");             //將s3初始化為一個字串字面值副本
string s4(n,'c');               //將s4初始化為字元‘c’的n個副本

警告:字串字面值與標準庫string型別不是同一種類型。

2、string物件的讀寫

  • 讀取並忽略開頭所有的空白字元(如空格,換行符,製表符)。

  • 讀取字元直至再次遇到空白字元,讀取終止。

2.1 讀取未知數目的string物件

int main()
{
    string word;
    while(cin>>word)
        cout<<word<<endl;
    return 0;
}

當鍵入Ctrl-z時,跳出讀取迴圈。

2.2 用getline讀取正行文字

這個函式接受兩個引數:一個輸入流物件和一個string物件。讀取輸入流到換行符的位置,將之前的讀取的內容儲存到string物件中。

string line;
getline(cin,line);

3、string的物件操作

3.1 size和empty操作

size函式返回string中字元的個數,包含換行符。empty函式返回為bool值,如果物件為空則返回true,否則返回false。

string st("value\n");
cout<<st.size()<<endl;  //size = 6

3.2 string::size_type型別

string物件中返回的一種配套型別,本質一般是unsigned。但是為了與硬體無關,設定了這個型別。值得注意的是,相關操作必須是這個型別,特別重要的是,一定不要使用int型別。

3.3 關係操作符

關係操作符==,<,<=,>,>=分別用來測試物件是否相等,小於(等於),大於(等於)。返回值是bool值。

  • 比較的是字元的ASCII碼。

  • 相等是長度和內容都相同。

  • 如果長度不同,但是短的和長的前部分匹配,則短的小於長的。

  • 如果兩個string物件的字元不同,則比較第一個不匹配的字元。

string s1="hello";
string s2="hello world";
string s3="Hello";
string s4="hiya";
//s3<s1<s2<s4

3.4 賦值,相加(連線)

但要注意的是兩個字串字面值不能相加(連線)。

string s1="hello";
string s2="world";
string s3=s1+" "+s2; //ok,"hello world"
string s4="hello"+" "+s2;  //error.兩個字串字面值不能相加
string s5=s1+" "+"world";  //ok

3.5 從string物件中獲取字元

通常使用下標或索引。下標操作符是一個size_type型別的值。並且可用作左值。

string st("value");
cout<<st[0]<<endl;  //ok
cout<<st[5]<<endl;  //error
st[1]='*';          //ok,a->*

3.6 string物件中字元的處理

在cctype標頭檔案中定義了很多函式。可以對string物件中的單個字元進行處理。

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.
ispace(c)     //如果c是空白字元,則為true.
isupper(c)    //如果c是大寫字母,則為true.
isxdigit(c)   //如果c是十六進位制數,則為true.
tolower(c)    //如果c是大寫字母,則返回其小寫字母形式,否則直接返回c.
toupper(c)    //如果c是小寫字母,則返回其大寫字母形式,否則直接返回c.







相關推薦

標準型別基礎1string

0、都已包含響應庫函式並已進行using宣告。 1、string初始化 string s1; //預設建構函式,s1為空字串 string s2(s1); //將s2初始化為s1的一個副本 stri

Python基礎1:基本資料型別及變數

資料型別: 包括整形,長整型(Python 3不支援),浮點型,複數。 type()方法可以檢視變數型別。 整形範圍:-2^32——2^32-1 長整型範圍:取決於你的機器所支援的記憶體大小。 (Python3中整形和長整型已無縫結合,整形範圍已不受限制,相當於Java中的BigInt

Java基礎1-資料型別

越努力越幸運  一.java的基本資料型別 short byte char int double float long boolean    面試官:int是多少位元組? 答:4個位元組。 面試官:那int在32位的jvm中是多少位元組,int在64位的j

Java基礎總結1——String, StringBuffer and StringBuilder

String, StringBuffer and StringBuilder用法總結 1. 可變性 String不可變 StringBuffer 和 StringBuilder 可變 原因如下: String類中使用final關鍵字字元陣列儲存字串,priv

C++基礎:C++標準之棧stack和佇列queue

在C++標準庫(STL)中,實現了棧和佇列,方便使用,並提供了若干方法。以下作簡要介紹。 1、棧(stack)說明及舉例: 使用棧,要先包含標頭檔案 : #include<stack> 定義棧,以如下形式實現: stack<Type> s; 其中Ty

Java列舉型別入門1_基礎理解,其他看不懂。

看到視訊,教程解釋不是很詳細。 找的基礎解釋。找到的其他例子都是直接例子,無解釋。。還是這個比較容易看懂。 搬過來。。。 原文:51CTO 我居然從頭看完了。。方便理解 關於引數,也有其他的文章。 Tiger中的一個重要新特性是列舉構造,它是一種新的Java列舉型別,允

Redis常用命令1String型別

一、相關命令列表說明: 命令原型 時間複雜度 命令描述 返回值 ————————String型別—————– APPEND key value 如果該Key已經存在,APPEND命令將

javascript 面向對象基礎 1

ron str strong bsp rip spa pro type 通過 常見的創建對象的方式有3種: ① 聲明變量的方式 var obj1 = { key1: "val1", key1: "val2", show: function () { conso

java基礎1

span 類名 什麽是 編程語言 ati png {} 編程 企業 一、 什麽是java,它包含哪些技術   1、 java是一種面向對象的高級編程語言   2、 java包括   a) javase(java基礎)   b)

實習培訓——Java基礎1

string 關系 size 它的 對象 main 字符 發現 src 實習培訓——Java基礎(1) 1、我的第一個JAVA程序 首先好配置好JDK環境,百度上有很多。創建文件HelloWorld.java(文件名與類名相同),代碼如下: public class He

網絡基礎1

網絡 協議 :協議就是指網絡通信時所遵循的規則和約定。服務:每個協議規定了一種網絡功能, 這種功能又稱服務,即每個協 議 都對用戶提供了一種服務。如 http協議為用戶提供了瀏覽web頁面 的功能,也就是提供了web瀏覽服務。主機(host ):連接到網絡的所有計算機統稱主機。主機分為兩種(或者說是

Python基礎1:基本運算符

src com .com strong images http es2017 image 1-1 1. 算數運算: 2. 比較運算 3. 賦值運算 4. 邏輯運算 5. 成員運算 Python基礎(1):基本運算符

python基礎1

pythonpython是可執行程序,必須聲明解釋器1.python腳本解釋器指定的兩種方法:#!/usr/bin/env python 查找環境變量下的py文件#!//usr/bin/python 查找bin目錄下的py文件2.什麽是UTF-8?UTF-8是世界通用的語言編碼,在程序的首行加上

自興人工智能-------------Python入門基礎1

bsp 編寫 意思 ctr 是否 比較運算符 -h name 字符串 Python 是一門簡單易學且功能強大的編程語言。 它擁有高效的高級數據結構, 並且能夠用簡單而又高效的方式進行面向對象編程。 Python 優雅的語法和動態 類型,再結合它的解釋性,使其在大多數平臺的許

C#基礎1

文檔 使用 忽略大小寫 read fault else ogr subst itop 摘要:學習c#已經有一段歷程了,回顧之前所打過的代碼以及筆記,做些常用的總結,希望以後工作中如果用到,方便查找。當然,個人首要目的是這樣,加深印象的同時,可以練習一下打字速

軟件測試基礎1

基本 健壯性 項目開發 gin 同時 clas wid 叠代 積極 目錄 l 軟件測試基礎 l 掌握軟件測試相關的概念 l 掌握軟件生命周期以及各階段相關的工作 l 掌握測試的對象和原則 l 了解軟件開發模型 l 掌握軟件測試模型及各模型的特點 l 掌握軟件測試的方法和類型

python全棧開發之Python基礎1

python 基礎一、 基礎知識 python的運行方式有兩種: 第一種通過交互式的運行方式,通過 "開始"—>"所有程序" —> "python3.x" —>"IDLE" 運行。 第二種是我們寫好的Pyth

數據結構基礎1--數組C語言實現--動態內存分配

ins post cli itl ini sem pri 應該 insert 數據結構基礎(1)--數組C語言實現--動態內存分配 基本思想:數組是最常用的數據結構,在內存中連續存儲,可以靜態初始化(int a[2]={1,2}),可以動態初始化 malloc()。

外部數據驅動程序1中的意外錯誤

器) 服務器 html 初步 作用 選擇 不能 class 微軟補丁 原文:用友u8各版本在輸出的時候報錯提示:外部數據庫驅動程序(1)中的意外錯誤 ,報錯內容“外部數據庫驅動程序(1)中的意外錯誤”,經初步分析有以下解決方案:1、卸載微軟的補丁:

Golang內建學習筆記1

type 學習筆記 res 利用 pos ring 類型 sso 最小 sort庫 利用sort.Sort進行排序須實現如下接口 type Interface interface { // 獲取數據集合元素個數 Len() int