打印
w[30]: before, 1before, 2before, 3before, 4before, 5before, 6before, 7before, 8before, 9before, before, 1before, 2before, 3before, 4before, 5before, 6before, 7before, 8before, 9before, a: 123456789WWWWW, a: 0x55e3aee24260after, 1after, 2after, 3after, 4after, 5after, 6after, 7after, 8after, 9after, Wafter, Wafter, Wafter, Wafter, Wafter, after, 6after, 7after, 8after, 9after,
strncat()将会从字符串src的开头拷贝n 个字符到dest字符串尾部,dest要有足够的空间来容纳要拷贝的字符串。
如果n小于字符串src的长度,那么仅拷贝n 个字符到dest字符串尾部, 字符追加完成后,再追加' '。
如果n大于字符串src的长度,那么仅将src指向的字符串内容追加到dest的尾部。
strncat()会将dest字符串最后的' '覆盖掉,字符追加完成后,再追加' '。
// 当使用像strncat()函数时,必须在缓冲区的末尾为终止空字符留下一个空字节,避免off-by-onestrncat(fullname, lastname, sizeof(fullname) - strlen(fullname) - 1); #include <string.h>#include <stdio.h> #include <stdlib.h>int main(){char firstname[30] = "123456789123456789";char fullname[10] = "**********";fullname[0] = ' ';strncat(fullname, firstname, 6);for (int i = 0; i < 10; i++) {printf("[i:%d], %c, %sn", i, fullname[i], fullname);} return 0;}打印
[i:0], 1, 123456[i:1], 2, 123456[i:2], 3, 123456[i:3], 4, 123456[i:4], 5, 123456[i:5], 6, 123456[i:6], , 123456[i:7], *, 123456[i:8], *, 123456[i:9], *, 123456