【零基礎(chǔ)學(xué)C語(yǔ)言】帶你解析字符串連接函數(shù):strcat_s 函數(shù)

目錄
一.strcat_s 函數(shù)簡(jiǎn)介
二.strcat_s 函數(shù)原理
三.strcat_s 函數(shù)實(shí)戰(zhàn)
一.strcat_s 函數(shù)簡(jiǎn)介
strcat_s函數(shù)和strcat函數(shù)一樣,主要用于字符串拼接;
strcat_s是系統(tǒng)的安全函數(shù),微軟在2005后建議用一系統(tǒng)所謂安全的函數(shù),這中間就有strcat_s取代了strcat,原來(lái)strcat函數(shù),沒有方法來(lái)保證有效的緩沖區(qū)尺寸,所以它只能假定緩沖足夠大來(lái)容納要拷貝的字符串,容易產(chǎn)生程序崩潰。而strcat_s函數(shù)能很好的規(guī)避這個(gè)問題,strcat_s函數(shù)語(yǔ)法如下:
1.strcat_s函數(shù)把strSource所指向的字符串追加到strDestination所指向的字符串的結(jié)尾,所以必須要保證strDestination有足夠的內(nèi)存空間來(lái)容納strSource和strDestination兩個(gè)字符串,否則會(huì)導(dǎo)致溢出錯(cuò)誤。
strcat_s函數(shù)原理:dst內(nèi)存空間大小 = 目標(biāo)字符串長(zhǎng)度 + 原始字符串場(chǎng)地 + ‘\0’;
2.strDestination末尾的\0會(huì)被覆蓋,strSource末尾的\0會(huì)一起被復(fù)制過去,最終的字符串只有一個(gè)\0;
二.strcat_s 函數(shù)原理
strcat_s函數(shù)原理:dst內(nèi)存空間大小 = 目標(biāo)字符串長(zhǎng)度 + 原始字符串場(chǎng)地 + ‘\0’;
獲取內(nèi)存空間大小使用sizeof函數(shù)(獲取內(nèi)存空間大小);獲取字符串長(zhǎng)度使用strlen函數(shù)(查字符串長(zhǎng)度)
三.strcat_s 函數(shù)實(shí)戰(zhàn)
注意:strcat_s第二個(gè)參數(shù)的計(jì)算,該參數(shù)是拼接后的字符串大小,并非原字符串大小或者目標(biāo)字符串大??;
希望對(duì)于初學(xué)者的你有幫助!

另外的話為了幫助大家,輕松,高效學(xué)習(xí)C語(yǔ)言/C++,我給大家分享我收集的資源,從最零基礎(chǔ)開始的教程到C語(yǔ)言項(xiàng)目案例,幫助大家在學(xué)習(xí)C語(yǔ)言的道路上披荊斬棘!可以來(lái)我粉絲群領(lǐng)取哦~
微信公眾號(hào):C語(yǔ)言編程學(xué)習(xí)基地
整理分享(多年學(xué)習(xí)的源碼、項(xiàng)目實(shí)戰(zhàn)視頻、項(xiàng)目筆記,基礎(chǔ)入門教程)最重要的是你可以在群里面交流提問編程問題哦!

歡迎轉(zhuǎn)行和學(xué)習(xí)編程的伙伴,利用更多的資料學(xué)習(xí)成長(zhǎng)比自己琢磨更快哦!大家也要把握住有限的時(shí)光,抓住成長(zhǎng)的每一次機(jī)會(huì)哦~
編程學(xué)習(xí)書籍分享:
