C語言 - 第十四章 | 字串 - 長度、複製、串接
長度
字串是一個字元陣列,最後一個字元以空字元'\0'結尾,若要得知字串所含字元長度(不包括空字元),則可以使用strlen()函式:
1 | size_t strlen(const char*); |
size_t是unsigned型態,在大部份系統是定義為unsigned int,但在64位元系統中可以是unsigned long。strlen()會傳回字元陣列中第一個字元至空字元的長度值減1。
1 |
|
註:字串相關處理函式是定義在
string.h中,所以要將其#include。
如果使用fgets()的話,要注意它會包括最後按下Enter的換行字元。
1 |
|

複製
字串複製,可以使用strcpy()函式,若要複製字串中若干字元內容,則可以使用strncpy()。
1 | char* strcpy(char*, const char*); |
- 第一個參數是目的字元陣列
- 第二個參數是來源字串
strncpy()第三個參數則是要複製的字元長度
注:
strncpy()不會自動在目的陣列加上空字元,它只是單純的複製指定長度的字元。
想要在使用strncpy()後,可以將目的字串陣列當作字串來使用,所以使用memset()函式將所有字元重設為空字元。
1 |
|
串接
串接兩個字串,則要使用strcat(),若要串接部份字串,則可以使用strncat()。
1 | char* strcat(char*, const char*); |
第二個參數的字串會串接到第一個參數之後,所以第一個參數必須保留足夠的空間作為串接時使用。
1 |
|
註:以上參考了
hackersir gitbooks
字串長度、複製、串接