strcpy_s和strcpy()函式的功能差點兒是一樣的。
strcpy函式,就象gets函式一樣,它沒有方法來保證有效的緩衝區尺寸,所以它僅僅能假定緩衝足夠大來容納要拷貝的字串。在程式執行時,這將導致不可預料的行為。
用strcpy_s就
能夠避免這些不可預料的行為。
這個函式用兩個引數、三個引數都能夠,僅僅要能夠保證緩衝區大小。
三個引數時:
errno_t strcpy_s(
char *strdestination,
size_t numberofelements,
const char *strsource
);兩個引數時:
errno_t strcpy_s(
char (&strdestination)[size],
const char *strsource
); // c++ only
樣例:
#include
#include
using namespace std;
void test(void)
int main()
#include
#include
using namespace std;
void test(void)
int main()
輸出為:
strlen(str1): 11 //另外要注意:strlen(str1)是計算字串的長度,不包含字串末尾的「\0」!!!
strlen(str): 5
hello world
hello
strcpy s 與 strcpy 的用法
今天用mfc的記憶體對映,發現拷貝出現了問題,減少寫入資料,輸出顯示資料會亂碼。現問題解決記錄分享下。errno t strcpy s char strdestination,size t numberofelements,const char strsource 各引數的意思如下 strdesti...
strcpy s與strcpy的比較
strcpy s和strcpy 函式的功能幾乎是一樣的。strcpy函式,就象gets函式一樣,它沒有方法來保證有效的緩衝區尺寸,所以它只能假定緩衝足夠大來容納要拷貝的字串。在程式執行時,這將導致不可預料的行為。用strcpy s就 可以避免這些不可預料的行為。這個函式用兩個引數 三個引數都可以,只...
strcpy s與strcpy的比較
strcpy s和strcpy 函式的功能幾乎是一樣的。strcpy函式,就象gets函式一樣,它沒有方法來保證有效的緩衝區尺寸,所以它只能假定緩衝足夠大來容納要拷貝的字串。在程式執行時,這將導致不可預料的行為。用strcpy s就 可以避免這些不可預料的行為。這個函式用兩個引數 三個引數都可以,只...