偏底層的工程專案中,我們經常會遇到要用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字元,作為乙...