目錄
- 一.strcat_s 函式簡介
- 二.strcat_s 函式原理
- 三.strcat_s 函式實戰
- 四.猜你喜歡
零基礎 C/C++ 學習路線推薦 : C/C++ 學習目錄 >> C 語言基礎入門
一.strcat_s 函式簡介
前面文章中介紹了關于字串拼接函式 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函式原理:dst記憶體空間大小 = 目標字串長度 + 原始字串場地 + ‘\0’;
2.strDestination 末尾的\0會被覆寫,strSource 末尾的\0會一起被復制過去,最終的字串只有一個\0;
二.strcat_s 函式原理
strcat_s函式原理:dst記憶體空間大小 = 目標字串長度 + 原始字串場地 + ‘\0’;獲取記憶體空間大小使用
sizeof函式(獲取記憶體空間大小);獲取字串長度使用strlen函式(查字串長度)
三.strcat_s 函式實戰
/******************************************************************************************/
//@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 函式
本文由博客 - 猿說編程 猿說編程 發布!
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/345473.html
標籤:C
