C語言常用字串處理函式 一

2021-07-10 04:43:50 字數 3254 閱讀 6397

偏底層的工程專案中,我們經常會遇到要用c語言來直接處理字串,了解這些函式,編寫起**來能夠事半功倍,這也是字串處理的基礎。c語言直接操作記憶體,所以需要完全理解這些函式在做什麼,並且時刻注意安全檢查,才能盡量避免一些奇怪的錯誤(這也是使用c語言的缺點)。一般地,使用這些函式,需要包含標頭檔案:

#include
原型:char *strcpy (char * __dest, const char * __src);

功能:將乙個字串(__src)拷貝到另乙個字串緩衝區中(__dest),並返回拷貝後的字串指標;

例子:

#include 

#include

int main()

執行結果:

copy, str2 = abcdefg

注意:

1. 必須保證拷貝後的緩衝區即上例中str2的大小足夠,否則造成記憶體溢位到未分配的位址,容易產生各種未知錯誤;

2. 由於該函式原理是逐字節複製,所以如果str1和str2的空間有重疊,則會造成覆蓋,可以看下面這個例子:

#include 

#include

int main()

拷貝後的空間和源字串的空間是有重合的,則源字串內容會被修改,執行結果為:

copy, str1 = abcabcdefg

原型:char *strncpy (char * __dest, const char *__src, size_t __n);

功能:將乙個字串(__src)拷貝到另乙個字串緩衝區中(__dest),拷貝最多不超過__n位元組,並返回拷貝後的字串指標;

例子:

#include 

#include

int main()

執行結果:

p=allen jg you can write

p=allen j

注意: strncpy這個函式並不會自動的在字串結尾加』\0』,需要我們去增加。

原型:char *strcat (char *__dest, const char *__src);

功能:將乙個字串(__src)拼接到另乙個字串緩衝區中(__dest),並返回拼接後的字串指標;

例子:

#include 

#include

int main()

執行結果:

p=allenjunyu
原型:char *strncat (char *__dest, const char *__src, size_t __n);

功能:將乙個字串(__src)拼接到另乙個字串緩衝區中(__dest),最多不超過__n個位元組,並返回拼接後的字串指標;

例子:

#include 

#include

int main()

執行結果:

str1=allen jun,length=9

str1=allen junjunyu,length=14

原型:size_t strlen (const char *__s);

功能:返回乙個字串(__src)的長度,即位元組(符)數,這裡僅考慮ascii字元;

原型:int strcmp (const char *__s1, const char *__s2);

功能:比較字串__s1和字串__s2,返回比較結果,如果相等,則返回0;

比較方式:兩個字串自左向右逐個字元相比(按ascii值大小相比較),直到出現不同的字元或遇』\0』為止;

返回結果:當s1s2時,返回值》0;

例子:

#include 

#include

int main()

執行結果:

ret=0
原型:int strncmp (const char *__s1, const char *__s2, size_t __n);

功能:比較字串__s1和字串__s2__n個字元,返回比較結果,如果相等,則返回0;

比較方式:同strcmp;

返回結果:同strcmp;

例子:

#include 

#include

int main()

執行結果:

ret=0
原型:int strcasecmp (const char *__s1, const char *__s2);

功能:比較字串__s1和字串__s2,忽略大小寫的比較,返回比較結果,如果相等,則返回0;

例子:

#include 

#include

int main()

執行結果:

strcasecmp ret=0
原型:int strncasecmp (const char *__s1, const char *__s2, size_t __n);

功能:比較字串__s1和字串__s2__n個字元,忽略大小寫的比較,返回比較結果,如果相等,則返回0;

例子:

#include 

#include

int main()

執行結果:

strncasecmp ret=0

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語言常用字串處理函式

在我們的日常c語言程式設計中,對於字串的處理,往往會出現不同種類的錯誤。其中,最常見的錯誤就是函式呼叫錯誤。這是因為我們對於字串處理函式還沒有真真地理解。下面,讓我們來深刻理解這些函式的實現過程 1.字串常量 即 位於一對雙括號中的任何字元。雙引號裡的字元加上編譯器自動提供的結束標誌 0字元,作為乙...