深析strcpy與strncpy函式的功能及缺陷

2021-10-08 09:33:33 字數 897 閱讀 7710

首先,兩者都是字串拷貝函式,不同的是兩個的引數個數不一樣。

char *strcpy(char *dest,const char *src)

char *strncpy(char *dest,const char *src,size_t count)

//表示可以從源拷貝多長

strcpy函式:若引數dest所指的記憶體空間不夠大,可能會造成緩衝溢位的錯誤;

strncpy 函式:用來複製源字串的n個字元,src和dest 所指的區域不能有重疊,並且dest必須有足夠空間存放,否則會出現越界和棧溢位的錯誤。

my_strncpy

(str1+

5,str1,4)

;

例如:strncpy在進行自我拷貝時會出現重疊區域

總結:strncpy

1、如果目標長》指定長》源長,則將源長全部拷貝到目標長,自動加上』\0』;

2、指定長《源長,則將源長中按照指定的長度拷貝到目標字串中,不包括』\0』;

3、若指定長》目標長執行錯誤

char

*my_strcpy

(char

* dest,

const

char

*src)

*cp=

'\0'

;return dest;

}

char

*my_strncpy

(char

*dest,

const

char

*src,size_t count)

while

(ireturn dest;

}

int,float,double型轉換深析

int整型 net中特指int32為32位長度符號整型變數 float 單精度浮點數32位長度1位符號位8位指數字與23位資料位 net中又稱為single double 64位長度雙精度浮點數1位符號位11位指數字52位資料位 它們互相關係就 int可以穩式轉換成float和double,floa...

Vue之元件(Props特性深析)

1 prop 的命名風格 前言 案例 要求所傳引數數值必須在18 50之間 validator為函式格式,且接收引數value即為props傳值大小,返回值為自定義校驗限制範圍 分類型別 基礎資料型別type校驗 多條件資料型別type校驗 必填項required校驗 預設值default校驗 自定...

strcpy函式與memcpy函式

strcpy函式與memcpy函式 6.2 字串與陣列 字串一般是用字元陣列的方式儲存,例如下面的str定義 char str 123456 這裡str是乙個字元陣列,它存放了乙個字串 123456 由於字串還有乙個結束符 0 所以此陣列的長度為7而不是6。6.2.1 strcpy函式與memcpy...