函數strncpy()用於將指定數量的字元從來源複製到目標。
以下是strncpy()的語法
char *strncpy( char *destination, char *source, size_t n);
在這裡,destination是指向目標數組的指針,來源字串將複製到該數組中,source是要複製的字串, n是要從來源字串複製的最大字元數。
strncpy()函數是不安全的,因為如果在來源字串的前n個字元中沒有NULL字符,則目標字串將不以NULL結尾。
以下是一個示範C 中strncpy()函數的程式。
線上示範
#include <iostream> #include <cstring> using namespace std; int main () { char source[20] = "This is a string"; char dest[20]; strncpy(dest, source, 4); cout << "The destination string is: " << dest; return 0; }
#上述程式的輸出如下。
The destination string is: This
現在讓我們理解上面的程式。
來源字串包含資料「This is a string」。然後使用 strncpy() 將前四個字元複製到目標字串中。然後列印目標字串的內容。顯示這一點的程式碼片段如下。
char source[20] = "This is a string"; char dest[20]; strncpy(dest, source, 4); cout << "The destination string is: " << dest;
以上是為什麼我們認為C/C++中的strncpy是不安全的?的詳細內容。更多資訊請關注PHP中文網其他相關文章!