1. 程式人生 > 實用技巧 >字串操作

字串操作

字串操作

複製字串(strcpy / strcnpy / sprintf )

1. char *strcpy( char * destination, const char * source );

最常用,但不安全。

要保證 1. destination有足夠的空間; 2. source和destination指向的空間沒有overlap。

2. intsprintf( char * str, const char * format, ... );

用於字串拷貝時,可視為 sprintf(dest, "%s", src);

要保證dest有足夠的記憶體存放src。

3. char *strncpy

( char * destination, const char * source, size_t num );

比strcpy,多了長度的控制。從source拷貝num個字元到destination。如source裡不夠num字元會補充0。如:

char buf[1024] = {0};
char str[16] = "hello";
strncpy(buf, sizefo(buf), str);

一行程式碼執行時是往buf寫了sizeof(buf) = 1024個位元組,而不是strlen(str) + 1 = 6個字元。

呼叫strncpy(dest, n, str)時,函式首先將字元從源緩衝區str逐個複製到目標緩衝區dest,直到拷貝了n碰上\0。

緊接著,strncpy函式會往buf填充\0字元直到寫滿n個字元。