1樓:
strcpy_s和strcpy函式的功能幾乎是一樣的。
strcpy函式,就象gets函式一樣,它沒有方法來保證有效的緩衝區尺寸,所以它只能假定緩衝足夠大來容納要拷貝的字串。
在程式執行時,這將導致不可預料的行為。用strcpy_s就可以避免這些不可預料的行為。
這個函式用兩個引數、三個引數都可以,只要可以保證緩衝區大小。
三個引數時:
errno_t strcpy_s(
char *strdestination,size_t numberofelements,const char *strsource兩個引數時:
errno_t strcpy_s(
2樓:小北娃
strcpy_s是vs後續版本中微軟新推出的更安全的函式。
strcpy之所以不安全是因為它需要程式設計師保證輸出buffer不會越界。
3樓:匿名使用者
strcpy 如果使用不當會造成記憶體越界,比如向目標緩衝區中拷貝超過緩衝區長度的串。
用strcpy_s 代替strcpy可以防止出現這種錯誤,它強制程式設計師寫出安全的**。
c++中strcpy什麼意思及用法
4樓:匿名使用者
字串拷貝
char * strcpy ( char * destination, const char * source );
把第二個引數的字串複製到第乙個引數的字串
5樓:匿名使用者
string s1="ddsds",s2="sdsdsdsd";
strcay(s1,s2) 意思為將s2複製給s1,並返回s1。
可以去看一下
vc為什麼識別不出來 strcpy_s函式
6樓:匿名使用者
在vs2010中,有眾多的系統函式名都追加了_s,比如scanf_s(),strcmp_s()等等,但在vc6.0中使用的還是傳統的函式名,如果你希望早期的編譯程式能識別新的函式原型,就像要求清朝的科學家能夠上網衝浪一樣不和情理。
7樓:
樓上說的對。 _s表示這個方法是安全的 (safe),原來的函式對字串的長是忽略的,可能溢位,這些加_s的方法對長度進行判斷,如果目標字元裝不下的話是不會進行不複製的。
8樓:匿名使用者
因為你沒有包含標頭檔案#include
用c++編寫strcpy
9樓:
從安全角度看,這個還是不安全的,考慮到串的長度;建議用s_strcpy
char *strcpy1(char *target, const char *source)
#include
int main()
10樓:匿名使用者
/** an implementation of strcpy.
*/char *strcpy1(char *target, const char *source)
#include
int main()
11樓:
char* strcpy(char* des,const char* source)
vs2013 c++中的strcpy用不了,說換成strcpy_s,還是出現錯誤了。
12樓:
不能x="王「這樣賦值,只能這樣初始化。也不能對char *x="abc"這樣定義的指標x進行寫操作,因為這樣定義的字串是常數。
13樓:七月流光
函式用錯了。無論是strcpy還是strcpy_s,都是將後面乙個字串的內容複製到前面乙個字串中。你寫的**中,x是乙個指標,指向乙個字串常量"王",x這裡指向的是乙個常量區域,如果你呼叫strcpy或者strcpy_s,將m拷貝到乙個常量區域,這就錯了。
因為字面值常量的記憶體是不能修改的,這就是為何是常量的原因。要解決你的問題,你可以先給x分配乙個空間x = new char[3];然後對x進行操作。記得在類的析構中釋放分配的空間。
14樓:感情程式設計師
strcpy_s(x,m);
15樓:匿名使用者
貌似是你的形參不對吧。。。
c++ 使用strcpy_s函式將字串複製到字元陣列
16樓:四捨**入
#include
#include
int main()
char name1[20] = "吃了沒?世界";
std::string name2 = "吃了" ;
strcpy_s(name1, name2.size()+1, name2.c_str());//這個改成name2.c_str(),name2是string型別,不是char*
std::cout << name1 << std::endl;
std::cin.get();
return 0;
17樓:匿名使用者
strcpy_s有兩個過載版本
strcpy_s(dest,src);
dest size必須是編譯期常量 且必須是sizeof(dest);
第二個版本是目的長度執行期才知道
strcpy_s(dest, sizeof(dest),src);
之所以加字尾 _s 是因為防止拷貝時緩衝區溢位,所以程式設計師務必告訴 c runtime 目的位址確切的長度。
18樓:篤俠
要不要把
strcpy_s(name1,name2.size()+1,name2);
寫成strcpy_s(name1,name2.size()+1,name2.c_str());啊。
c語言strcpy問題,C語言中,strcpy為什麼會出現錯誤
先問你乙個問題,你確定 這樣的語句可以編譯通過?至少 我使用的編譯器是不能通過這樣的語句的。因為 strcpy 你在修改 1234 這個常量區。這是非法的。haha 已經給出乙個解釋了,我只想再補充一下,sizeof a 為什麼從頭到尾就沒變過。因為sizeof這個看起來像是個函式其實他不是乙個普通...
請問C 中「流」和「指標(位址)」有什麼關係
所謂的 流 實際上是乙個類,更確切地說是乙個模板。cout abc endl 它真實的操作是利用了幾個函式 函式的近似原型 ostream operator ostream operator ostream endl ostream o 所以這個cout語句的執行流程是這個樣子的 operator ...
請問什麼蔬菜和水果含維生素c最高
什麼蔬菜含維生素c最多?提到維生素c,人們總是聯想到辣椒 甘藍 士多啤梨 橘子 桂圓等。其實,食用薯類食品也是補充 維生素c的好方法。在各種薯類食品中,尤以紅薯特具營養價值。就維生素c含量而言,紅薯每百克含維生素c30毫克,遠超過蘋果 葡萄 桃 梨等水果。薯類食品的好處在於,不論煮 炸 烤等料理方法...
您好,請問聯想樂phone和諾基亞C7選擇哪款好?謝謝
當然樂 phone了,這個定位的是和iphone 比的,相容的軟體也多,作業系統是買的,比諾基亞的自主開發系統要好,諾基亞的系統被其他廠家給砸了,現在收回自己搞了 都別選了,都不咋滴,推薦你買個htc g7或者摩托羅拉mb525就是那款三防手機,樂phone系統版本太低,c7就不說了。樂phone ...
請問澄海3c光明和黑暗都有哪些主力英雄,最好用中文介紹一下,,謝謝啦
光明的娜迦女妖,聖騎士,大魔法師,山丘之王,血魔法師,惡魔獵手,守望者,月之女祭司,森林守護者,鍊金術士,光明遊俠。黑暗的深淵魔王,劍聖,炎魔,恐懼魔王,牛頭人酋長,地穴領主,黑暗遊俠,死亡騎士,暗影獵手,巫妖。合體熊貓兩隻,劍聖和惡魔獵手合體的,光明遊俠和黑暗遊俠合體的。光明的綜合排名 首發 鍊金...