定義,用法啥的就懶得寫了,只把三者比較繞、比較惡心人的地方總結一下,
snprintf
int snprintf(char *str, size_t cnt, const char *format, ...);
- cnt 為欲復制的字符的個數,實際復制的字符個數取 cnt 和 format的 size 二者中較小的一個,
- 若 cnt 大于 format 的長度,那么只會把源串 format 全部復制,
- 若 cnt 小于 format 的長度,那么會復制 cnt 個字符,若第 cnt 個字符不是 ’ \0 ‘ ,那么將第 cnt 個字符改為 ’ \0 ‘,再復制到目的串,
- 回傳值:成功時回傳源串的長度(strlen,不包括 ’ \ 0 ’ ),失敗則回傳一個負數,
strncpy
char *strncpy(char *dest, const char *src, size_t cnt);
- 從 src 源串復制 cnt 個字符到 dest 目的串,如果源串 src 的長度不夠 cnt ,那么剩下的就用 NULL 來填充,(不保證 ’ \ 0 ‘ )
strncat
char *strncat(char *dest, const char *src, size_t n);
- 若 cnt 大于 src 的長度,那么把 src 接到 dest 后面,總之以小的為準,另外,若 src 的末尾沒有 ’ \ 0 ‘ ,
那么還會額外在連接后的串尾添上一個 ’ \ 0 ',注意是額外,不會影響到 src,要小心 dest 是否因此而溢位,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/224215.html
標籤:其他
下一篇:正則運算式使用筆記
