C 字串及基本操作

2021-09-24 04:53:40 字數 4227 閱讀 4318

string類:

ps:更多資料結構知識詳見:

常見陣列結構與演算法

char greeting=

"hello"

;//字串初始化用雙引號,字元初始化用單引號

cout

strcpy(s1,s2);

strcat(s1, s2);

strlen(s1); //返回s1的長度(不加』\0』)sizeof(s1)返回字串陣列大小

strcmp(s1, s2); //如果 s1 和 s2 是相同的,則返回 0;如果 s1s2 則返回值大於 0。

strchr(s1, ch); //返回乙個指標,指向字串 s1 中字元 ch 的第一次出現的位置。

strstr(s1, s2); //返回乙個指標,指向字串 s1 中字串 s2 的第一次出現的位置。

//使用strchr(s1, ch)

char first[20]

="hello"

;char

*p =

strchr

(first, 『l』)

;cout << p << endl;

//輸出llo

//string初始化

string str1

("abcd");

string str2(5

,'a');

//5個a

string str2(5

,'abc');

//5個c

string str3

("abcdefghijk",3

);//abc

string str4 (

"abcdefghijk",3

,5);

//從第三個位置開始取5個字元

string s1=

"abc"

;

1.增加函式

使用+

string s1

("abc");

string s2

("def");

//使用+

string s3=s1+s2;

s1.(s2)

;s1.(3

,'k');

s1.(s2,1,

2);//增加s2從1位開始的兩位字元

使用insert

跟vector的insert不一樣,vector的insert第乙個元素一定是乙個迭代器,不能是整數,而string的insert都可以使用

//使用insert

s1.insert(2

,"def");

s1.insert(2

,s2,1,

2);//插入s2的1位開始的兩個字元

s1.insert(2

,s2)

;s1.

insert

(s1.

begin()

,'1');

s1.insert

(s1.

begin()

,3,'1'

);

2.刪除函式

使用erase

跟vector不一樣,vector使用的迭代arr.begin()+n

string可以使用迭代器和數字,並且使用迭代器和數字是代表的含義不一樣

s1.

erase(1

,2);

//從1位開始的兩個字元

s1.erase(1

);//刪除1位後面的所有字元

s1.erase

(s1.

begin()

+1);

//只刪除1位的字元

3.修改函式

使用replace

//使用replace

string s1=

"1234567"

;s1.

replace(2

,3,"abcdefg",2

,4);

//用cdef替換345

s1.replace(2

,3,5

,'0');

//用5個0替換345

使用assign

//使用assign

s1.assign(4

,'a'

);

使用swap

//使用swap

s1.swap

(s2)

;swap

(s1,s2)

;

4.判斷函式

使用compare

//使用compare

string s

("abcd");

s.compare

("abcd");

//返回0

s.compare

("dcba");

//返回乙個小於0的值

s.compare

("ab");

//返回大於0的值

s.compare

(s);

//相等

s.compare(0

,2,s,2,2

);//用"ab"和"cd"進行比較 小於零

s.compare(1

,2,"bcx",2

);//用"bc"和"bc"比較。

使用<,>

string s1

("real");

string s2

("abdc");

int a = s1 > s2;

cout << a << endl;

//輸出1

5.遍歷函式

使用find

注意find_first_of和find_last_of的區別

//使用find

string str=

"1234eqsabababcdefg"

;str.

find

("ab");

//返回字串 ab 在 str 的位置

str.

find

("ab",2

);//在 str[2]~str[n-1] 範圍內查詢並返回字串 ab 在 str 的位置

str.

rfind

("ab",2

);//在 str[0]~str[2] 範圍內查詢並返回字串 ab 在 str 的位置

str.

find_first_of

("ab");

str.

find_first_of

("ab",2

);//返回ab中任何乙個字元首次在 str[2]~str[n-1] 範圍**現的位置

str.

find_last_of

("23");

//返回23中任何乙個字元最後一次在 str **現的位置

str.

find_last_of

("23",2

);//返回23中任何乙個字元最後一次在 str[0]~str[2] 範圍**現的位置

6.其他函式

使用getline

string str;

getline

(cin,str)

;

string轉換

string a=「1234」;

int b=

atoi

(a.c_str()

);int a=

123;

string b=

to_string

(a);

使用substr

string s=

"abcdefg"

;string s1=s.

substr(1

,3);

//bcd

string s2=s.

substr(4

);//efg

C 字串基本操作

在 c 語言中,字串是由數字 字母 下劃線組成的一維字元陣列,並且使用 null 字元 0 作為終止符號。字串在儲存上類似字元陣列,所以它每一位的單個元素都是可以提取的,如s abcdefg 則s 0 a s 1 b 字元實際上是以對應的ascii數值的形式在記憶體中儲存的。對乙個字元強制轉換成in...

C 字串基本操作

一 知乎總結 1 string類介紹 2 容器操作 3 修改 4 查詢 5 比較 二 常用操作 c風格字串 c風格字串初始化 c風格字串常見操作 string類 string類初始化 string類常見操作 char greeting hello 字串初始化用雙引號,字元初始化用單引號 cout s...

python字串及基本操作

字串是字元的有序序列,可以對其中的字元進行索引,在索引的時候,字串是從0開始變好的 字串有兩類共四種表示方法 由一對單引號或者雙引號表示,僅表示單行字串 請輸入帶有符號溫度的溫度值 或者 c 由一堆三單引號或者三雙引號表示,可表示多行字串 python 語言 大家可能會疑惑,三單引號或雙引號不是注釋...