函式原型:char* strcpy(char* dst, char const *src);(1) dst 必須是乙個字元陣列或者指向動態記憶體分配的字元陣列的指標,不能使用字串常量
(2)如果src字串長度小於dst字元陣列長度,那src中的字串將被拷貝到dst字元陣列中,且dst中剩餘的字元也會被有效的刪除。(安全)(3)如果src字串長度大於dst字元陣列的長度,即src字串過長,dst中無法容納,strcpy函式將侵占陣列後的部分記憶體空間,改寫恰好儲存在那裡的變數,這是十分危險的。(不安全)
因此,建議使用strncpy來取代strcpy.
如下,通過**驗證說明問題:
#include #include #include using namespace std;
int main()
; strcpy(s1,s2);
printf("s1:%s\n",s1);
cout << strlen(s1) << endl;
strcpy(s1,s3);
printf("s1:%s\n",s1);
cout << strlen(s1) << endl;
printf("s4:%s\n",s4); // 從輸出結果可以看到,s4中記憶體被寫入部分溢位的字串
return 0;
}
輸出結果:
hello world!
s1:ilove
5s1:ilovethisbeautifulgirl
22s4:utifulgirl
strcpy函式注意事項
用於複製字串的函式是strcpy,它的原型是 char strcpy char dst,char const src 這個函式把引數src字串複製到dst引數。如果引數src和dst在記憶體中出現重疊,其結果是未定義的,由於dst引數將進行修改,所以它必須是個字元陣列或者是乙個指向動態分配記憶體的陣...
LCD使用注意事項
a.lcd使用注意事項 1.確保是在電源關閉的狀態下拔插線纜 2.對液晶屏進行固定安裝時,注意使整個液晶屏保持平整,避免外力導致液晶屏 彎曲 扭曲 3.一定要小心液晶屏的表面偏光片,避免被堅硬物體劃傷 決不能將堅硬物品置於液晶屏之上 4.如果水滴長時間滯留在液晶模組上,可能導致變色或出現汙斑,所以務...
using使用注意事項
在c 的語法中,using關鍵字有幾個作用 一 匯入乙個命名空間,以便於能使用該命名空間下的相關型別定義,如下的例項 中,將匯入system.text下的相關型別定義 二 為乙個命名空間設定別名,這種情況下並不會匯入對應命名空間下的型別定義,如例項 為system.text定義了別名systext,...