C語言常見字串操作

2021-10-24 12:20:54 字數 4655 閱讀 2324

1、獲取字串長度

標頭檔案:#include

函式的定義:size_t strlen(const char *s)

函式功能:

測字元指標s指向的字串中字元的個數,不包括"\0"

返回值:字串中字元個數

int

main

(int argc,

char

*ar**)

執行結果

s1_len =

5s1_size =

20

2、字串拷貝函式

標頭檔案:#include

函式的定義:char *strcpy(char *dest, const char *src)

函式說明:

拷貝src指向的字串到dest指標指向的記憶體中,"\0"也會拷貝

函式的返回值:

目的記憶體的位址

注意:在使用次函式的時候,必須保證dest指向的記憶體空間足夠大,否則會出現記憶體汙染

函式的定義:char *strncpy(char *dest, const char *src,size_t n)

函式的說明:

將src指向的字串前n個位元組,拷貝到dest指向的記憶體中

返回值:

目的記憶體的首位址

注意:1、strcpy不拷貝"\0"

2、如果n大於src指向的字串中的字元個數,則在dest後面填充n-strlen(src)個"\0"

int

main

(int argc,

char

*ar**)

執行結果

s1 = world
3、字串追加函式

標頭檔案:#include

函式定義: char *strcat(char *dest,const char *src)

函式功能:

strcat函式追加src字串到dest指向的字串的後面。追加的時候會追加"\0"

注意:保證dest指向的記憶體空間足夠大

函式定義: char *strncat(char *dest,const char *src,size_t n)

函式功能:

追加src指向的字串的前n個字元,到dest指向的字串的後面

注意:如果n大於src的字元個數,則只將src字串追加到dest指向的字串的後面,追加的時候會追加"\0"

int

main

(int argc,

char

*ar**)

執行結果

s1 = helloworld
4、字串比較函式

標頭檔案:#include

函式定義:int strcmp(const char *s1,const char *s2)

函式說明:

比較s1和s2指向的字串的大小

比較的方法:逐個字元去比較ascll碼,一旦比較出大小則返回。如果所有字元都一樣,則返回0

返回值:

如果s1指向的字串大於s2指向的字串 返回1

如果s1指向的字串小於s2指向的字串 返回-1

如果相等的話返回0

函式定義:int strncmp(const char *s1,const char *s2,size_t n)

函式說明:比較s1和s2指向的字串的前n個字元

int

main

(int argc,

char

*ar**)

else

if(ret >0)

else

return0;

}

執行結果

s1 < s2
5、字元查詢函式

標頭檔案:#include

函式定義:char *strchr(const char *s,int c)

函式說明:

在字元指標s指向的字串中,找到ascll碼為c的字元

注意:是首次匹配,如果說s指向的字串中有多個ascll為c的字元,則找的是第1個字元

返回值:

找到了返回找到的字元的位址

找不到返回null

函式定義:char *strrchr(const char *s,int c)

函式的說明:末次匹配

在s指向的字串中,找最後一次出現的ascll為c的字元

返回值:

末次匹配的字元的位址

int

main

(int argc,

char

*ar**)

else

return0;

}

執行結果

在第5個位置
6、字串匹配函式

標頭檔案:#include

函式定義:char *strstr(const char *haystack,const char *needle)

函式說明:

在haystack指向的字串中查詢needle指向的字串,也是首次匹配

返回值:

找到了:返回的字串的首位址

沒找到:返回null

int

main

(int argc,

char

*ar**)

else

return0;

}

執行結果

在第4個位置
7、字串轉換數值

atoi/atol/atof

標頭檔案:#include

函式的定義:int atoi(const char *nptr)

函式的功能:

將nptr指向的字串轉換成整數,返回

int

main

(int argc,

char

*ar**)

執行結果

ret =

123456789

8、字串切割函式

標頭檔案:#include

函式定義:char *strtok(char *str,const char *delim)

函式功能:

字串切割,按照delim指向的字串中的字元,切割str指向的字串。其實就是在str指向的字串中發現了delim字串中的字元,就將其變成"\0",呼叫一次strtok只切割一次,切割一次之後,再去切割的時候strtok的第乙個引數傳null,意思是接著上次切割的位置繼續切

注意:如果str字串**現了連續的幾個delim中的字元,則只將第乙個字元變成"\0"

int

main

(int argc,

char

*ar**)

執行結果

ret =

123

9、格式化字串操作函式

int sprintf(char *buf,const char *format,…) //輸出到buf指定的記憶體區域

int sscanf(const char *buf,const char *format,…)

int

main

(int argc,

char

*ar**)

執行結果

buf =

2020:9

:9a =2020

,b =

9,c =

9

10、const

(1) 修飾普通變數,代表唯讀的意思

const int a = 100;//定義了乙個唯讀變數a值為100

以後程式中,不能再給a賦值

(2) const 修飾指標

const char *str

意思是str指向的記憶體的內容不能通過str來修飾

用來保護str指向的記憶體的內容

但是str的指向是可以改變的

char *strcpy(char *dest,const char *str)

如果const修飾指標變數的型別,無法通過指標變數修改位址裡面的值const int * p

如果const修飾指標變數,無法修改指標變數儲存的位址int * const p

如果const既修飾指標變數的型別,又修飾指標變數,則只能通過原本修改值const int * const p

c語言 常見字串操作函式

函式名 strcpy 功 能 將引數src字串拷貝至引數dest所指的位址 用 法 char strcpy char dest,const char src 返回值 返回引數dest的字串起始位址 說 明 如果引數dest所指的記憶體空間不夠大,可能會造成緩衝溢位的錯誤情況,在編寫程式時需特別留意,...

python常見字串操作

str hello world print str.upper 把所有字元中的小寫字母轉換成大寫字母 print str.lower 把所有字元中的大寫字母轉換成小寫字母 print str.capitalize 把第乙個字母轉化為大寫字母,其餘小寫 print str.title 把每個單詞的第乙...

python常見字串操作

附 python2.x和python3.x中raw input 和input 區別 備註 1 在python2.x中raw input 和input 兩個函式都存在,其中區別為 raw input 將所有輸入作為字串看待,返回字串型別 input 只能接收 數字 的輸入,在對待純數字輸入時具有自己的...