C語言 基礎篇之常用字串函式詳解

2021-10-17 05:11:43 字數 3045 閱讀 1439

不帶n的只需要考慮p1的陣列是否足夠大不需要考慮『\0』的問題,帶n的需要考慮』\0』。

strlen int len=strlen§.:返回乙個int型別數值,即返回字串p的長度,『\0』不算做乙個長度。

strcpy: 把src所指向的字串複製到dest所指向的空間中,』\0』也會拷貝過去。

. char *strcpy(char *dest, const char *src);

引數:dest:目的字串首位址。

src:源字元首位址。

返回值:

成功:返回dest字串的首位址。

失敗:null。

注意:如果引數dest所指的記憶體空間不夠大,可能會造成緩衝溢位的錯誤情況。

例:char dest[20] = 「123456789」;

char src = 「hello world」;

strcpy(dest, src);

printf("%s\n", dest);

3. strncpy: 把src指向字串的前n個字元複製到dest所指向的空間中,是否拷貝結束符看指定的長度是否包含』\0』。

引數:dest:目的字串首位址。

src:源字元首位址。

n:指定需要拷貝字串個數。若n大於src長度則補齊長度

返回值:

成功:返回dest字串的首位址。

失敗:null。

例:char dest[20] ;

char src = 「hello world」;

strncpy(dest, src, 5);

printf("%s\n", dest);

dest[5] = 『\0』;

printf("%s\n", dest);

5. strcat:將src字串連線到dest的尾部,『\0』也會追加過去。

自己給自己追加程式會崩潰

char *strcat(char *dest, const char *src);

引數:dest:目的字串首位址。

src:源字元首位址。

返回值:

成功:返回dest字串的首位址。

失敗:null。

例:char str[20] = 「123」;

char *src = 「hello world」;

printf("%s\n", strcat(str, src));

6. strncat:將src字串前n個字元連線到dest的尾部(即從『\0』位置開始覆蓋),『\0』也會追加過去。

比如 char arr1[20]=「hello\0******」;

char arr2=「world」;

strncat(arr1,arr2,3); //陣列arr1變為:

arr1[20]=「hellowor\0***x」;

char *strncat(char *dest, const char *src, size_t n);

再如果是 strncat(arr1,arr2,8);追加的長度大於要追加的陣列大小,則追加完所有陣列的字元後補乙個『\0』就完事。 結果變為: arr1[20]=「helloworld『\0』x」;

引數:dest:目的字串首位址。

src:源字元首位址。

n:指定需要追加字串個數。

返回值:

成功:返回dest字串的首位址。

失敗:null

例:char str[20] = 「123」;

char *src = 「hello world」;

printf("%s\n", strncat(str, src, 5));

8. strcmp:字串比較函式。依次比較兩個字串的對應字元大小(『\0』的ascii碼值是0)

9. int strcmp(const char *s1, const char *s2);

.功能:比較 s1 和 s2 的大小,比較的是字元ascii碼大小。

引數:s1:字串1首位址

s2:字串2首位址

返回值:

相等:0

大於:>0 在不同作業系統strcmp結果會不同 返回ascii差值

小於:<0

例:int型 變數ret用來接收strcmp函式的返回值。

strcmp比較p1,p2兩個字串大小,若p1>p2,返回1;p1=p2,返回0;p1 0

小於: < 0

例:char *str1 = 「hello world」;

char *str2 = 「hello mike」;

if (strncmp(str1, str2, 5) == 0)

else if (strcmp(str1, 「hello world」) > 0)

else

14 atoi():

int atoi(const char *nptr);

功能:atoi()會掃瞄nptr字串,跳過前面的空格字元,直到遇到數字或正負號才開始做轉換,而遇到非數字或字串結束符(』\0』)才結束轉換,並將結果返回返回值。

引數:nptr:待轉換的字串

返回值:成功轉換後整數

類似的函式有:

atof():把乙個小數形式的字串轉化為乙個浮點數。

atol():將乙個字串轉化為long型別

char str1 = "-10";

int num1 = atoi(str1);

printf("num1 = %d\n", num1);

char str2 = "0.123";

double num2 = atof(str2);

printf("num2 = %lf\n", num2);

C語言常用字串函式

c 庫函式 strcat char strcat char dest,const char src 把 src 所指向的字串追加到 dest 所指向的字串的結尾 演示 strcat 函式的用法 char str1 100 char str2 100 gets str1 輸入abcd strcat s...

C 常用字串函式

1.變數.length 取字串長度 如 string str hello int len str.length len是自定義變數,str是字串的變數名 console.writeline len 輸出結果 5 2.變數.substring 引數1,引數2 擷取字串的一部分,引數1為左起始位數,引數...

C 常用字串函式

1.字串比較 字串.comparto 目標字串 a comparto b 2.查詢子串 字串.indexof 子串,查詢其實位置 字串.lastindexof 子串 最後一次出現的位置 str.indexof ab 0 3.插入子串 字串.insert 插入位置,插入子串 s.insert 2,ab...