C語言常用字串處理函式

2021-10-24 19:36:09 字數 2552 閱讀 8205

在我們的日常c語言程式設計中,對於字串的處理,往往會出現不同種類的錯誤。其中,最常見的錯誤就是函式呼叫錯誤。這是因為我們對於字串處理函式還沒有真真地理解。下面,讓我們來深刻理解這些函式的實現過程:

1.字串常量

即:位於一對雙括號中的任何字元。雙引號裡的字元加上編譯器自動提供的結束標誌\0字元,作為乙個字串儲存在記憶體中。如:printf("%s",「hello」); //「hello」

2.字串陣列

char m[100] = 「hello,world」; //定義字串陣列時必須指定陣列大小(整型常量),在指定大小時,要確保陣列的大小比預定的大乙個,因為編譯器會自動新增』\0』。

char m=; //注意標誌結束的空字元,若沒有它,得到的只是乙個字元陣列而不是字串

3.利用char指標定義字串

char *m = 「hello,world」; //自動新增』\0』

常規方法

#include

int mystrlen()

;//函式宣告

int main()

int mystrlen

(char str1)

return i;

}

指標處理
#include

int mystrlen()

;int main()

int mystrlen

(char *str1)

return count;

}

執行結果

常規方法

#include 

#include

void

mystrcat()

;int main()

void

mystrcat

(char str1[

],char str2)

//將字串str2連線到str1,與要保證str1陣列記憶體足夠大。

str1[len1+i]

='\0'

;}

指標處理
#include

void

mystrcat()

;int main()

void

mystrcat

(char *str1,char *str2)

//陣列作為形參被傳遞,可以採用指標。

執行結果

常規方法

#include

int mystrcmp

(char str1[

],char str2)

;int main()

int mystrcmp

(char str1[

],char str2)

else

i++;}

return sum;

}

指標處理
//指標操作

#include

int mystrcmp()

;int main()

int mystrcmp

(char *str1,char *str2)

return

*str1-

*str2;

}

執行結果

常規方法

#include

void

mystrcpy()

;int main()

void

mystrcpy

(char str1[

],char str2)

str1[i]

='\0'

;}

指標處理
//指標操作

#include

int mystrcmp()

;int main()

int mystrcmp

(char *str1,char *str2)

return

*str1-

*str2;

}

執行結果

字串知識總結:

1、c語言約定』\0』作為字串的結束標誌,它占用記憶體空間,但不計入串的長度。

2、在strcat()和strcopy()重寫的常規方法,需要手動新增結尾標誌』\0』。

3、在字串陣列作為形式引數表示時,可以用""+陣列名,例如str。

4、字串的輸出格式為:%s。

C語言常用字串處理函式

1 函式名 stpcpy 功 能 拷貝乙個字串到另乙個 用 法 char stpcpy char destin,char source 2 函式名 strcat 功 能 字串拼接函式 用 法 char strcat char destin,char source 3 函式名 strchr 功 能 在...

C語言常用字串處理函式

下面介紹幾個最常用的字串函式。格式 puts 字元陣列名 功能 把字元陣列中的字串輸出到顯示器。即在螢幕上顯示該字串。例7 12 include stdio.h main 從程式中可以看出puts函式中可以使用轉義字元,因此輸出結果成為兩行。puts函式完全可以由printf函式取代。當需要按一定格...

C語言常用字串處理

字串 字串是由零個或者多個字元組成的有限序列 子串 字串中任意個連續的字元組成的子串行,並規定空串是任意串的子串,字串本身也是子串之一 abcdefg abc 就是其子串,但是 ade 不屬於子串範圍。子串行 不要求字元連續,但是其順序與其在主串中相一致 上例中,abc 與 ade 都屬於子串行範圍...