字元陣列 string h和string

2021-10-05 10:45:34 字數 4788 閱讀 5468

char str[10]

=;//char str[10] = "kangjiasal";報錯,應該還有個結束字元『\0』

char str[11]

="kangjiasal"

;//輸出

for(

int i =

0; i <

10; i++

)printf

("%s"

, str)

;

1.2.1 scanf輸入,printf輸出
//scanf輸入,printf輸出

//%c用來輸入單個字元,%s用來輸入乙個字串並存在字元陣列中

//%c格式能夠識別空格跟換行並將其輸入

//%s通過空格或換行來識別乙個字串的結束

char c[10]

[7];

//這個情況下空格是要被當成字元存入陣列的

for(

int i =

0; i <

7; i++

)//吸收轉行符

getchar()

;//%c前的空格很關鍵,可以做格式化輸入

for(

int i =

0; i <

7; i++

)//讀入兩行資料

for(

int i =

2; i <

4; i++

)//輸出

注:前兩行輸出是1.1的

1.2.2 getchar()、putchar()

int

main()

getchar()

;//吸收轉行符

}for

(int i =

0; i <

3; i++

) cout << endl;

}return0;

}

1.2.3 gets輸入、puts輸出

gets用來輸入一行字串(注意:gets識別換行符\n作為輸入結束,因為scanf完乙個整數後,如果要使用gets,要先用getchar接收整數後的換行符),並將其存放於一維陣列(或二維陣列的一維)中;puts用來輸出一行字串,即將一維陣列在介面輸出,並緊跟乙個換行。

int

main()

puts

(str1)

;for

(int i =

0; i <

3; i++

)return0;

}

string.h包含了許多用於字元陣列的函式。

strlen函式可以得到字元陣列中第乙個\0前的字元的個數

int

main()

輸入輸出返回兩個字串大小的比較結果,比較原則是按字典序

int

main()

return0;

}

輸入輸出

可以把乙個字串複製給另乙個字串

//把字元陣列2複製給字元陣列1,這裡的「複製」包括了結束符\0

strcpy

(str1,str2)

;

int

main()

可以把乙個字串接到另外乙個字串後面

int

main()

sscanf

int

main()

輸出123

sprintf

int

main()

輸出233

string str =

"shangan"

;

1 通過下標訪問

2 通過迭代器訪問

int

main()

return0;

}

3.3.1 operator+=
string str1 =

"kangjia"

, str2 =

"shanganla"

; str1 +

= str2;

cout << str1;

3.3.2 compare operator
//==、!=、、<=、>=

str1 < str2

//...

3.3.3 length()/size()
cout << str.

length()

<< str.

size()

;

3.3.4 insert()

1 insert(pos,string),在pos號位置插入字串string

string str1 =

"kangjia"

, str2 =

"shanganla"

; str1.

insert(7

, str2)

; cout << str1;

2 insert(it,it2,it3),it為原字串的欲插入位置,it2和it3為待插字串的首尾迭代器,用來表示串[it2,it3)將被插在it的位置上

string str1 =

"kangjia"

, str2 =

"shanganla"

; str1.

insert

(str1.

begin()

+7, str2.

begin()

, str2.

end())

; cout << str1;

3.3.5 rease()

1 刪除單個元素

string str1 =

"kangjia"

, str2 =

"shanganla"

;str1.

erase

(str1.

begin()

+4);

cout << str1;

2 刪除乙個區間

string str1 =

"kangjia"

, str2 =

"shanganla"

;str1.

erase

(str1.

begin()

+4, str1.

end()-1);

//刪除從3號位開始的2個字元

str.

erase(3

,2);

3.3.6 clear()
//清空字串

str.

clear()

;

3.3.7 substr()
//substr(pos,len)返回從pos號位開始、長度為len的字串,時間複雜度o(len)

str.

substr(0

,5);

3.3.8 find()
//當str2是str的子串時,返回其在str中第一次出現的位置;如果str2不是str的子串,那麼返回string::npos

str.

find

(str2)

;//從str的pos號位開始匹配str2,返回值與上相同

str.

find

(str2,pos)

;

3.3.9 replace()
//把str從pos號位開始、長度為len的子串替換為str2

str.

replace

(pos,len,str2)

;//把str的迭代器[it1,it2)範圍內的子串替換為str2

str.

replace

(it1,it2,str2)

;

想要獲取一行字元還是要用字元陣列,再使用gets()

C風格字串string h

c語言識別儲存字串,是靠陣列的結構,單個字元儲存,並在末尾處自動加上 0 作為字串結束的標識。char 定義的字串 char 定義的變數儲存在字元常量區,定義的是乙個常量。所以char 一旦定義的就無法修改內部的單個字元。所以通常使用 const char char str定義的字串 char st...

列表list 陣列array 字串str 轉換

剛開始學習總是記混這些東西,縷清一下方便記憶。先認識一下各個型別長啥樣 列表list 1,2 a3 逗號隔開 l 1 2 a3 print type l 輸出結果 陣列array 1 2 3 空格隔開 w np.arange 3 print w print type w 輸出結果 0 1 2 元組t...

string和string h的區別

一般來說,h字尾都是c的標頭檔案,與其相對應的不加.h的都是c 的標頭檔案,比如 include 和 include 前者是c的標頭檔案,後者是c 的標頭檔案,也就是c 沒有.h的副檔名,一般後者都是前者的公升級版本。在c 標準化的過程中,為了表示標頭檔案 於c,有時也在前面加上c,比如cmath就...