- 算法訓(xùn)練營:海量圖解+競賽刷題(入門篇)
- 陳小玉
- 769字
- 2021-07-23 18:16:31
1.10 玩轉(zhuǎn)字符串——不一樣的風(fēng)格
字符串指存儲在內(nèi)存的連續(xù)字節(jié)中的一系列字符。C++中的字符串分為兩種形式:C-風(fēng)格字符串、C++ string類字符串。
1. C-風(fēng)格字符串
C-風(fēng)格字符串的頭文件為#include<cstring>,默認以'\0'結(jié)束,在存儲空間中不要忘了'\0'。字符串定義形式如下。
? 字符數(shù)組:char a[8]={'v','e','r','y','g','o','o','d'}。
? 字符串:char a[8]={'a','b','c','d','e','f','g','\0'}。
還有另外一種字符串定義。
? 字符串:char a[8]="abcdefg"。
? 字符串:char a[]="afsdjkl;sd"。
字符數(shù)組或字符串的長度測量函數(shù)為sizeof、strlen。
(1)sizeof:返回所占總空間的字節(jié)數(shù),針對整型或字符型數(shù)組及整型或字符型指針。由于在編譯時計算,因此sizeof不能用來返回動態(tài)分配的內(nèi)存空間大小。
(2)strlen:返回字符數(shù)組或字符串所占的字節(jié)數(shù),針對字符數(shù)組及字符指針。
訓(xùn)練1-43:定義一些字符串,求長度并運算、輸出。

C-風(fēng)格字符串的輸入方式有cin、getline和get。
? cin:使用空格、制表符、換行符來確定字符串的結(jié)束位置,因此字符串只能接收一個單詞。換行符被保留在輸入序列中。
? getline:讀取一行,直到遇到換行符,丟棄換行符。
? get:讀取一行,直到遇到換行符,換行符被保留在輸入序列中。
注意!使用cin和get后會將換行符保留在輸入序列中,解決方法為再調(diào)用一次cin.get。

2. C++ string類字符串
C++ string類字符串的長度沒有限制,其頭文件為#include<string>。C++中的string類隱藏了字符串的數(shù)組性質(zhì),使用戶可以像處理普通變量一樣處理字符串。

注意:
? 可以使用C-風(fēng)格字符串初始化string類字符串;
? 可以使用cin輸入并將輸入的內(nèi)容存儲到string類字符串中;
? 可以使用cout輸出string類字符串;
? string類字符串沒有'\0'的概念;
? char數(shù)組使用了一組用于存儲一個字符串的存儲單元,而string變量使用了一個表示字符串的實體。
字符串的長度測量函數(shù)有.length、.size。例如,str.length()和str.size()都可用于求str字符串的長度。

C++string類字符串的輸入方式有cin和getline。

訓(xùn)練1-45:輸入一些字符串,對其進行復(fù)制、拼接、比較等操作。


訓(xùn)練1-46:輸入一行字符,統(tǒng)計單詞的個數(shù),單詞之間以空格隔開。


訓(xùn)練1-47:輸入3個字符串,找出其中最小的字符串。

- Go Web編程
- Spring Cloud Alibaba核心技術(shù)與實戰(zhàn)案例
- 編程的修煉
- Mastering SVG
- 深入淺出Java虛擬機:JVM原理與實戰(zhàn)
- 零基礎(chǔ)學(xué)Scratch少兒編程:小學(xué)課本中的Scratch創(chuàng)意編程
- Python自動化運維快速入門
- ASP.NET 3.5程序設(shè)計與項目實踐
- Modern JavaScript Applications
- Jupyter數(shù)據(jù)科學(xué)實戰(zhàn)
- Learning DHTMLX Suite UI
- Java程序設(shè)計入門
- MySQL入門很輕松(微課超值版)
- 從0到1:HTML5 Canvas動畫開發(fā)
- Mastering VMware Horizon 7(Second Edition)