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就...