#include "MyGame.h" #include <stdlib.h> #include <errno.h> #include <string.h> #include <iostream> int MyGame::totalparticipants = 0; int main(){ //char src[] = "1234567890"; //char src[] = "12345"; char src[] = "1234"; int len = strlen(src); //4 char dst[5]; int dlen = _countof(dst); //5 errno_t err = strncpy_s(dst, _countof(dst), src, _TRUNCATE); if ( err == STRUNCATE ) { std::cout << "truncation occurred!\n" ; } else { std::cout << "haha"; } }
当src里面元素个数 + 1=strncpy_s 参数二大小时,不发生截断
当src里面元素个数>=strncpy_s 参数二大小时,发生截断
即://char src[] = "1234567890";
//char src[] = "12345";
这两种情况都发生截断。
char src[] = "1234";
时不发生截断