1. 程式人生 > >C語言字符,字符串,字節操作常用函數

C語言字符,字符串,字節操作常用函數

字符串 int 數組 限制 一個 覆蓋 ron 註意 都是

strlen 這個函數是在 string.h 的頭文件中定義的 它的函數原型是 size_t strlen( const char ); size_t 是一個無符號整型,是這樣定義的 typedef unsigned int size_t; 既然它返回的不是整型數,那麽如果你想直接對他的表達式進行操作,那麽肯定就會存在一些問題,如下:

if( strlen(str1) - strlen(str2) >=0 )

這個判斷語句將永遠都是真的,因為左側的是無符號數,那個不可能比零小,所以這樣做就和你的預期想法完全不同了。所以對 strlen 的返還值進行強制轉換為 int 類型就不用擔心這種問題的出現。

strcpy 這個函數是 string.h 的頭文件中定義的 它的函數原型是 char * strcpy( char *dst, char const *src); 函數的功能是把 src 字符串復制到 dst ,如果兩參數在內存中出現重疊,那麽結果是未定義的。因為 dst 將被修改所以他不可以是字符串常量,這個函數有一個返還值,這個返還值其實就是操作後的字符串指針的一個復制。同時在使用這個函數的時候有一個問題是必須要註意的,保證目標字符數組的空間一定要足以容納需要復制的字符串,如果使用者不能保證這個問題,那麽數組後的內存空間將被覆蓋,這樣引起的危害是不可估量的。

strcat 這個函數是 string.h 的頭文件中定義的 它的函數原型是 char * strcat( char * dst, char const *src ); 函數的功能是把 src 字符串添加在 dst 原有字符串的後面,去掉原有的 ‘\0‘ 將字符串添加到後面並加上一個 ‘\0‘ 。和上一個函數一樣都需要註意的要確保目標字符數組有足夠的空間,返還值也是操作後的字符串的指針。

strcmp 這個函數是 string.h 的頭文件中定義的 它的函數原型是 int strcmp (char const *s1, char const *s2 ); 函數的功能是 將兩個字符串的字符逐一比較,直到發現不匹配為止,那個優先不匹配的較“小”,這種比較叫做字典比較。如果 s1 小於 s2 返回一個小於零的值,如果 s1 大於 s2 ,返回一個大於零的值,如果兩個參數相等返回零。

那麽既然這種函數在操作的時候需要考慮到字符數組能否存儲下的問題,那個就有了相應的可以限制長度的函數。

strncpy strncat strncmp

這是三個函數的原型是

char * strncpy( char *dst, char const *src, size_t len );

char * strncat ( char *dst ,char const *src ,size_t len);

int strncmp(char const *s1, char const *s2, size_t len;

這些函數都在原來的基礎上加了一個參數,就是要操作字符串的長度。strncpy 函數從 src 字符串中復制 len 個字符到 dst 中,如果不足就用NUL補充,strncat 函數從 src 中復制 len 個字符到 dst 的後面,最後並加上一個NUL。

strncmp 就是只比較 len 個字符。

C語言字符,字符串,字節操作常用函數