其實(shí)說到字符串,這個(gè)概念沒有具體的說法,但是我們根據(jù)平時(shí)的歸納總結(jié),也能一段,便于大家理解,字符串就是把字符連在一直,串成一串又一串;字符串內(nèi)可以包含數(shù)字、字母、特殊符號(hào)等所有內(nèi)容;在Python中只要對(duì)一些內(nèi)容加上對(duì)雙引號(hào)或一對(duì)單引號(hào),就默認(rèn)為是字符串;(三對(duì)單引號(hào)或三對(duì)雙引號(hào)可以寫多行字符串)。
字符串的關(guān)鍵是str,是string的縮寫。
一、什么是字符串?
解釋:對(duì)于"Holl world "(雙引號(hào))印出來的這一串字符叫做字符串。而 'A' (單引號(hào))僅僅是字符,甚至于("")雙引號(hào)里面沒有什么字符就叫做空字符串。比如:空字符串這樣寫
int main() { ""; 這個(gè)就叫做空字符串 return 0; }
對(duì)于字符串這一板塊還有一個(gè)重要的概念需要講;就是字符串里有個(gè)叫做結(jié)束標(biāo)識(shí)符
這個(gè)結(jié)束標(biāo)識(shí)符就是:\0
且這個(gè)結(jié)束標(biāo)識(shí)符不算作字符內(nèi)容。
字符串或串(String)是由數(shù)字、字母、下劃線組成的一串字符。它是編程語言中表示文本的數(shù)據(jù)類型。在程序設(shè)計(jì)中,字符串為符號(hào)或數(shù)值的一個(gè)連續(xù)序列。字符串操作就是以串的整體作為操作對(duì)象,如:在串中查找某個(gè)子串、求取一個(gè)子串、在串的某個(gè)位置上插入一個(gè)子串以及刪除一個(gè)子串等。
二、定義
(1)字符集
一個(gè)字符集是一個(gè)建立了全序關(guān)系的集合,也就是說,中的任意兩個(gè)不同的元素和都可以比較大小,要么,要么。字符集中的元素稱為字符。
(2)字符串
一個(gè)字符串 S 是將 n 個(gè)字符順次排列形成的序列, n 稱為 S 的長(zhǎng)度,表示為 |S |。 S 的第個(gè)字符表示為 S[]。(在有的地方,也會(huì)用S[ - 1 ]表示第個(gè)字符。)
(3)子串
字符串 S 的子串表示 S 串中從到這一段,也就是順次排列形成的字符串。
有時(shí)也會(huì)用來表示空串。
(4)子序列
字符串 S 的子序列是從 S 中將若干元素提取出來并不改變相對(duì)位置形成的序列,即 。
(5)后綴
1. 后綴是指從某個(gè)位置開始到整個(gè)串末尾結(jié)束的一個(gè)特殊子串。字符串 S 的從開頭的后綴表示為 ,也就是。
2. 真后綴指除了 S 本身的 S 的后綴。
舉例來說,字符串 abcabcd 的所有后綴為 {d, cd, bcd, abcd, cabcd, bcabcd, abcabcd},而它的真后綴為 {d, cd, bcd, abcd, cabcd, bcabcd}。
(6)前綴
1. 前綴是指從串首開始到某個(gè)位置結(jié)束的一個(gè)特殊子串。字符串 S 的以結(jié)尾的前綴表示為 ,也就是。
2. 真前綴指除了 S 本身的 S 的前綴。
舉例來說,字符串 abcabcd 的所有前綴為 {a, ab, abc, abca, abcab, abcabc, abcabcd}, 而它的真前綴為 {a, ab, abc, abca, abcab, abcabc}。
(7)字典序
以第個(gè)字符作為第關(guān)鍵字進(jìn)行大小比較,空字符小于字符集內(nèi)任何字符(即:)。
(8)回文串
回文串是正著寫和倒著寫相同的字符串,即滿足。
三、字符串的存儲(chǔ)
(1)使用 char 數(shù)組存儲(chǔ),用空字符表示字符串的結(jié)尾(C 風(fēng)格字符串)。
(2)使用 C++ 標(biāo)準(zhǔn)庫提供的 string 類。
(3)字符串常量可以用字符串字面量(用雙引號(hào)括起來的字符串)表示。
C語言網(wǎng)提供由在職研發(fā)工程師或ACM藍(lán)橋杯競(jìng)賽優(yōu)秀選手錄制的視頻教程,并配有習(xí)題和答疑,點(diǎn)擊了解:
一點(diǎn)編程也不會(huì)寫的:零基礎(chǔ)C語言學(xué)練課程
解決困擾你多年的C語言疑難雜癥特性的C語言進(jìn)階課程
從零到寫出一個(gè)爬蟲的Python編程課程
只會(huì)語法寫不出代碼?手把手帶你寫100個(gè)編程真題的編程百練課程
信息學(xué)奧賽或C++選手的 必學(xué)C++課程
藍(lán)橋杯ACM、信息學(xué)奧賽的必學(xué)課程:算法競(jìng)賽課入門課程
手把手講解近五年真題的藍(lán)橋杯輔導(dǎo)課程