字串操作
阿新 • • 發佈:2020-07-30
字串操作
複製字串(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個字元。