亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

C語言的strcpy函數(shù)你了解嗎

 更新時(shí)間:2022年03月22日 10:26:42   作者:威威沁沁  
這篇文章主要為大家詳細(xì)介紹了C語言的strcpy函數(shù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助

strcpy

拷貝字符串到目標(biāo)地址

函數(shù)原型

char *strcpy( char * destination, const char * source )

參數(shù)講解

參數(shù)destinationsource
解釋目標(biāo)字符串地址以 Null 結(jié)尾的源字符串地址

返回值詳解

這些函數(shù)中的每一個(gè)都返回目標(biāo)字符串,沒有返回值就是拷貝失敗。

函數(shù)詳解

strcpy使用時(shí)幾個(gè)注意點(diǎn)

 第一個(gè)注意點(diǎn):源字符串必須以‘\0’結(jié)束,同時(shí)會(huì)將源字符串中的‘\0’拷貝到目標(biāo)空間。

就是說當(dāng)我們把源字符串拷貝到目標(biāo)地址時(shí)什么時(shí)候停止呢,就是當(dāng)把源字符串中的‘\0’也拷貝過去時(shí)結(jié)束。

用以下代碼為例,就是說當(dāng)arr2中f拷貝到arr1中時(shí),strcpy還會(huì)把a(bǔ)rr2中的‘\0’拷貝到arr1中

#include<stdio.h>
#include<string.h>
int main()
{
	char arr1[8];
	char arr2[] = "abcdef";
 
	strcpy(arr1, arr2);
 
	printf("%s\n", arr1);
	return 0;
}

 而如果arr2中沒有‘\0’時(shí),看如下圖片所示,strcpy會(huì)越界訪問直到程序崩潰!

 而當(dāng)給arr2中添加'\0'時(shí),程序就很容易就編譯過去了 

所以在源地址中一定要存在'\0'

第二個(gè)注意點(diǎn):目標(biāo)空間必須足夠大,以確保能存放源字符串

假如我們把a(bǔ)rr2中的七個(gè)字符拷貝到arr1中去,遺憾的是arr1只有四個(gè)空間不夠大,這時(shí)我們還調(diào)用strcpy,就會(huì)發(fā)現(xiàn)程序崩了!

 為什么程序會(huì)崩了呢?原因很簡(jiǎn)單,就是‘裝不下’,arr1的??臻g被破壞了。

而作為程序員的我們,必須保證目標(biāo)空間足夠大,strcpy本身是不考慮這些問題的(很滑稽是不是,有一種你叫我干啥我干啥,出事了還怪我嘍的味道)

第三個(gè)注意點(diǎn):目標(biāo)空間必須可變

例如下面這個(gè)代碼,arr1指向"qwertyuiop"(這個(gè)字符串足夠長(zhǎng)吧),現(xiàn)在要求把a(bǔ)rr2中的字符串拷貝到arr1中去,大家覺得結(jié)果會(huì)是什么?

#include<stdio.h>
#include<string.h>
int main()
{
	char* arr1 = "qwertyuiop";
	char arr2[] = "abcedf";
	strcpy(arr1, arr2);
 
	printf("%s", arr1);
	return 0;
}

看到這想必大家心理應(yīng)該都有答案了,調(diào)試一下發(fā)現(xiàn)程序又崩了!這是為什么呢?

 就是因?yàn)閍rr1指向的是常量字符串,常量是不可修改的。如果非要寫成代碼去修改它,抱歉只能報(bào)錯(cuò)了。所以大家使用strcpy是目的地必須是可修改的。

總結(jié)

本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!    

相關(guān)文章

  • C語言中qsort函數(shù)用法實(shí)例小結(jié)

    C語言中qsort函數(shù)用法實(shí)例小結(jié)

    這篇文章主要介紹了C語言中qsort函數(shù)用法,包括了針對(duì)各種數(shù)據(jù)類型參數(shù)的排序,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2014-09-09
  • Qt 實(shí)現(xiàn)桌面雪花飄落代碼

    Qt 實(shí)現(xiàn)桌面雪花飄落代碼

    這篇文章主要介紹了Qt實(shí)現(xiàn)桌面雪花飄落代碼,有需要的朋友可以參考一下
    2013-12-12
  • 基于MFC實(shí)現(xiàn)自定義復(fù)選框效果

    基于MFC實(shí)現(xiàn)自定義復(fù)選框效果

    復(fù)選框是一種可同時(shí)選中多項(xiàng)的基礎(chǔ)控件,主要是有兩種明顯的狀態(tài):選中與非選中。本文將通過MFC框架實(shí)現(xiàn)自定義復(fù)選框效果,感興趣的可以了解一下
    2022-02-02
  • C++實(shí)例代碼詳解友元函數(shù)

    C++實(shí)例代碼詳解友元函數(shù)

    采用類的機(jī)制后實(shí)現(xiàn)了數(shù)據(jù)的隱藏與封裝,類的數(shù)據(jù)成員一般定義為私有成員,成員函數(shù)一般定義為公有的,依此提供類與外界間的通信接口。但是,有時(shí)需要定義一些函數(shù),這些函數(shù)不是類的一部分,但又需要頻繁地訪問類的數(shù)據(jù)成員,這時(shí)可以將這些函數(shù)定義為該類的友元函數(shù)
    2022-06-06
  • c語言通過棧判斷括號(hào)匹配是否配對(duì)

    c語言通過棧判斷括號(hào)匹配是否配對(duì)

    前面實(shí)現(xiàn)了棧的基本數(shù)據(jù)結(jié)構(gòu),這里來做一個(gè)聯(lián)系,用棧來解決一道比較常見的算法題,就是括號(hào)配對(duì)是否滿足規(guī)則,文中有相關(guān)的代碼示例供大家參考,需要的朋友可以參考下
    2023-09-09
  • C++超詳細(xì)分析順序表

    C++超詳細(xì)分析順序表

    程序中經(jīng)常需要將一組數(shù)據(jù)元素作為整體管理和使用,需要?jiǎng)?chuàng)建這種元素組,用變量記錄它們,傳進(jìn)傳出函數(shù)等。一組數(shù)據(jù)中包含的元素個(gè)數(shù)可能發(fā)生變化,順序表則是將元素順序地存放在一塊連續(xù)的存儲(chǔ)區(qū)里,元素間的順序關(guān)系由它們的存儲(chǔ)順序自然表示
    2022-03-03
  • C語言實(shí)現(xiàn)貪吃蛇游戲(單人版)

    C語言實(shí)現(xiàn)貪吃蛇游戲(單人版)

    這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)貪吃蛇游戲單人版,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-06-06
  • 淺析VSCode launch.json中的各種替換變量的意思 ${workspaceFolder} ${file} ${fileBasename} ${fileDirname}等

    淺析VSCode launch.json中的各種替換變量的意思 ${workspaceFolder} ${file} $

    這篇文章主要介紹了VSCode launch.json中的各種替換變量的意思 ${workspaceFolder} ${file} ${fileBasename} ${fileDirname}等,非常不錯(cuò)具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-03-03
  • C++中函數(shù)的默認(rèn)參數(shù)詳細(xì)解析

    C++中函數(shù)的默認(rèn)參數(shù)詳細(xì)解析

    在函數(shù)聲明或定義時(shí),直接對(duì)參數(shù)賦值,該參數(shù)就是默認(rèn)參數(shù)。在函數(shù)調(diào)用時(shí),省略部分或全部參數(shù),這時(shí)就會(huì)使用默認(rèn)參數(shù)進(jìn)行代替
    2013-10-10
  • C++11中移動(dòng)構(gòu)造函數(shù)案例代碼

    C++11中移動(dòng)構(gòu)造函數(shù)案例代碼

    C++11 標(biāo)準(zhǔn)中為了滿足用戶使用左值初始化同類對(duì)象時(shí)也通過移動(dòng)構(gòu)造函數(shù)完成的需求,新引入了 std::move() 函數(shù),它可以將左值強(qiáng)制轉(zhuǎn)換成對(duì)應(yīng)的右值,由此便可以使用移動(dòng)構(gòu)造函數(shù),對(duì)C++11移動(dòng)構(gòu)造函數(shù)相關(guān)知識(shí)感興趣的朋友一起看看吧
    2023-01-01

最新評(píng)論