關(guān)于C++中strcpy函數(shù)例題講解
基本用法
1.函數(shù)原型 char *strcpy(char *dest,const char *src)
2.從src地址開始且含有null結(jié)束符的字符串復(fù)制到以dest地址開始的字符串中,并返回指向dest的指針。通俗的講就是將 src字符數(shù)組復(fù)制到dest數(shù)組中,如果dest數(shù)組本身有數(shù)據(jù),會(huì)把src里的數(shù)據(jù)全部復(fù)制到dest中,如果dest中有數(shù)據(jù)小于src地址長(zhǎng)度的將會(huì)被覆蓋,而大于src長(zhǎng)度的將保留。
3.注意事項(xiàng):
dest的地址長(zhǎng)度要足夠大,不然會(huì)產(chǎn)生溢出。Dest的內(nèi)存長(zhǎng)度要大于等于src的內(nèi)存長(zhǎng)度。
原題
程序找錯(cuò)
#include "stdafx.h" #include "stdlib.h" #include "string.h" #pragma warning( disable : 4996) using namespace std; void test1() { char string[10]; const char* str1 = "0123456789"; strcpy(string, str1); printf(string); } int main() { test1(); system("pause"); return 0; }
錯(cuò)誤
string開的空間為10,而str1的長(zhǎng)度為11(算上字符串結(jié)束字符)
實(shí)例補(bǔ)充:
char * strcpy(char * strDest,const char * strSrc) { if ((NULL==strDest) || (NULL==strSrc)) throw "Invalid argument(s)"; char * strDestCopy = strDest; while ((*strDestCopy++ = *strSrc++) != '\0'); return strDest; }
到此這篇關(guān)于關(guān)于C++中strcpy函數(shù)例題講解的文章就介紹到這了,更多相關(guān)C++中strcpy函數(shù)實(shí)例內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C++11中內(nèi)聯(lián)函數(shù)(inline)用法實(shí)例
內(nèi)聯(lián)函數(shù)本質(zhì)還是一個(gè)函數(shù),但在聲明的時(shí)候,函數(shù)體要和聲明結(jié)合在一起,否則編譯器將它作為普通函數(shù)來對(duì)待,下面這篇文章主要給大家介紹了關(guān)于C++11中內(nèi)聯(lián)函數(shù)(inline)的相關(guān)資料,需要的朋友可以參考下2022-10-10visual studio 建立dll類型工程、控制臺(tái)程序
這篇文章主要介紹了visual studio 建立dll、控制臺(tái)類型工程的相關(guān)知識(shí),感興趣的朋友跟隨腳本之家小編一起學(xué)習(xí)吧2018-05-05