strcpy s與strcpy的比較

2021-07-30 18:23:06 字數 854 閱讀 7709

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頂

6 踩

2

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就 可以避免這些不可預料的行為。這個函式用兩個引數 三個引數都可以,只...