目錄
- 一.strcat_s 函數簡介
- 二.strcat_s 函數原理
- 三.strcat_s 函數實戰
- 四.猜你喜歡
零基礎 C/C++ 學習路線推薦 : C/C++ 學習目錄 >> C 語言基礎入門
前面文章中介紹了關于字元串拼接函數
strcat
,而
strcat_s
函數和
strcat
函數一樣,主要用于字元串拼接;
strcat_s
是系統的安全函數,微軟在
2005
後建議用一系統所謂安全的函數,這中間就有
strcat_s
取代了
strcat
,原來
strcat
函數,沒有方法來保證有效的緩沖區尺寸,是以它隻能假定緩沖足夠大來容納要拷貝的字元串,容易産生程式崩潰。而
strcat_s
函數能很好的規避這個問題,
strcat_s
函數文法如下:
/*
*描述:此類函數是用于對字元串進行拼接, 将兩個字元串連接配接再一起
*
*參數:
* [in] strSource:需要追加的字元串
* [in] numberOfElements:拼接後的字元串大小(并非目标字元串大小也并非原始字元串大小)
* [out] strDestination:目标字元串
*
*傳回值:errno_t是微軟新定義的一種類型,這種類型是一種整型,
* 代表錯誤代碼,若果是0 則代表沒有錯誤,如果是其他的值 ,則會抛出一個值;
*/
//頭檔案:string.h
errno_t strcat_s(char *strDestination , size_t numberOfElements , const char *strSource );
1.
strcat_s
函數把
strSource
所指向的字元串追加到
strDestination
所指向的字元串的結尾,是以必須要保證
strDestination
有足夠的記憶體空間來容納
strSource
和
strDestination
兩個字元串,否則會導緻溢出錯誤。
函數原理:
strcat_s
記憶體空間大小 = 目标字元串長度 + 原始字元串場地 + ‘\0’;
dst
2.
strDestination
末尾的
\0
會被覆寫,
strSource
\0
會一起被複制過去,最終的字元串隻有一個
\0
;
strcat_s
擷取記憶體空間大小使用
dst
函數(擷取記憶體空間大小);擷取字元串長度使用
sizeof
函數(查字元串長度)
strlen
/******************************************************************************************/
//@Author:猿說程式設計
//@Blog(個人部落格位址): www.codersrc.com
//@File:C語言教程 - C語言 strcat_s 函數
//@Time:2021/06/05 08:00
//@Motto:不積跬步無以至千裡,不積小流無以成江海,程式人生的精彩需要堅持不懈地積累!
/******************************************************************************************/
#include "stdafx.h"
#include<stdlib.h>
#include<stdio.h>
#include<string.h>
#include "windows.h"
//error C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
#pragma warning( disable : 4996)
void main()
{
char src[1024] = { "C/C++教程-strcat_s函數" };
char dst[1024] = { "www.codersrc.com" };
//注意:strcat_s第二個參數的計算,該參數是拼接後的字元串大小,并非原字元串大小或者目标字元串大小
int len = strlen(src) + strlen(dst) + 1;
printf("strcat_s之前 dst:%s\n", dst); //
strcat_s(dst, len, src);
printf("strcat_s之後 dst:%s\n", dst);//
system("pause");
}
輸出結果:
strcat_s之前 dst:www.codersrc.com
strcat_s之後 dst:www.codersrc.comC/C++教程-strcat_s函數
請按任意鍵繼續. . .
注意:
strcat_s
第二個參數的計算,該參數是拼接後的字元串大小,并非原字元串大小或者目标字元串大小;
- 安裝 Visual Studio
- 安裝 Visual Studio 插件 Visual Assist
- Visual Studio 2008 解除安裝
- Visual Studio 2003/2015 解除安裝
- 設定 Visual Studio 字型/背景/行号
- C 語言格式控制符/占位符
- C 語言邏輯運算符
- C 語言三目運算符
- C 語言逗号表達式
- C 語言自加自減運算符(++i / i++)
- C 語言 for 循環
- C 語言 break 和 continue
- C 語言 while 循環
- C 語言 do while 和 while 循環
- C 語言 switch 語句
- C 語言 goto 語句
- C 語言 char 字元串
- C 語言 strlen 函數
- C 語言 sizeof 函數
- C 語言 sizeof 和 strlen 函數差別
- C 語言 strcpy 函數
- C 語言 strcpy_s 函數
- C 語言 strcpy 和 strcpy_s 函數差別
- C 語言 memcpy 和 memcpy_s 差別
- C 語言 strcat 函數
- C 語言 strcat_s 函數
未經允許不得轉載:猿說程式設計 » C 語言 strcat_s 函數
本文由部落格 - 猿說程式設計 猿說程式設計 釋出!