文章目錄
一、strcpy()函數(shù)的簡介
二、strcpy()函數(shù)的具體使用
三、使用strcpy()函數(shù)的注意事項
strcpy()函數(shù):是將一個字符串復(fù)制到另一塊空間地址中 的函數(shù),‘\0’是停止拷貝的終止條件,同時也會將 '\0' 也復(fù)制到目標(biāo)空間。下面是庫中的strcpy()函數(shù)聲明:
char* strcpy(char* destination,const char* source);
?1. 函數(shù)的參數(shù):
?2.函數(shù)的返回值類型:
場景一:
#define _CRT_SECURE_NO_WARNINGS
#include#includeint main()
{
char arr[10] = "########";
printf("%s\n", strcpy(arr,"hello"));
return 0;
}
輸出的結(jié)果
場景二:?
#define _CRT_SECURE_NO_WARNINGS
#include#includeint main()
{
char arr1[10] = "**********";
char arr2[10] = "abcd";
printf("%s\n", strcpy(arr1, arr2));
return 0;
}
輸出結(jié)果
1.源字符必須以 '\0'結(jié)束:
#define _CRT_SECURE_NO_WARNINGS
#include#includeint main()
{
char arr1[10] = "**********";
char arr2[] = { 'a','b','c','d' };
printf("%s\n", strcpy(arr1,arr2));
return 0;
}
這里的代碼會出錯,'\0'是停止拷貝的終止條件,arr2字符數(shù)組所在的內(nèi)存空間后面存儲的內(nèi)容并不知道,不遇到 '\0' 拷貝就不會停止,這就會導(dǎo)致越界訪問,程序就會出現(xiàn)問題。
2.目標(biāo)空間必須足夠大,以確保能放源字符串
#define _CRT_SECURE_NO_WARNINGS
#include#includeint main()
{
char arr1[5] = "*****";
char arr2[] = "hello world";
printf("%s\n", strcpy(arr1,arr2));
return 0;
}
這里雖然拷貝成功并將結(jié)果輸出了,但程序卻崩潰了。目標(biāo)空間太小,不足以放置拷貝的源字符串,會造成溢出的情況
3.目標(biāo)空間必須可變
#define _CRT_SECURE_NO_WARNINGS
#include#includeint main()
{
char* str1 = "hello world";
char str2[10] = "*********";
printf("%s\n", strcpy(str1,str2));
return 0;
}
這里的程序也出現(xiàn)了錯誤。str1指向的是常量字符串,是不可以被修改掉的,目標(biāo)空間必須是可以被修改的,因為要將拷貝的字符串放在目標(biāo)空間中。而源字符串可以是能夠修改的、也可以是不能修改的,因為strcpy函數(shù)的第二個參數(shù)已經(jīng)用const關(guān)鍵字修飾了,保證了拷貝過程中不會被修改。
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧
當(dāng)前名稱:【C語言】strcpy()函數(shù)-創(chuàng)新互聯(lián)
路徑分享:http://www.chinadenli.net/article28/gchcp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計、商城網(wǎng)站、做網(wǎng)站、網(wǎng)頁設(shè)計公司、動態(tài)網(wǎng)站、服務(wù)器托管
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容