程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> strncpy與snprintf 的用法比擬

strncpy與snprintf 的用法比擬

編輯:關於C++

strncpy與snprintf 的用法比擬。本站提示廣大學習愛好者:(strncpy與snprintf 的用法比擬)文章只能為提供參考,不一定能成為您想要的結果。以下是strncpy與snprintf 的用法比擬正文


strncpy的准確用法:
strncpy(dest, src, sizeof(dest));
dest[sizeof(dest)-1] = ‘\0';

snprintf的准確用法:
snprintf(dest, sizeof(dest), "%s", src);

strncpy的成績:
1.size必定要用sizeof(dest)或sizeof(dest)-1,弗成誤用sizeof(src).
2.手工填0. 務需要把dest的最初一個字節手工設置為0. 由於strncpy僅在src的長度小於dest時,對殘剩的字節填0.
3.機能成績。當dest長度弘遠於src時,因為strncpy會對過剩的每一個字節填0,會有很年夜的機能喪失。
4.前往值。strncpy前往dest,因此沒法曉得拷貝了若干個字節。

snprintf的成績:
1.弗成省略第三個參數"%s",隱患是,假如src中包括%,會激發core。
2.機能成績。當src長度弘遠於dest時,因為snprintf要前往src的字節數,須要掃描src,會有很年夜的機能喪失。
3.前往值。假如以後buf夠用,前往現實寫入的字符數;假如不敷用,前往將要寫入的字符數。換句話說,前往值就是傳入的字符數量。

總結:
1.snprintf應用比strncpy簡練。
2.snprintf可以獲得被拷貝的字節數。
3.兩者都有機能成績。假如src弘遠於dest,用strncpy;假如dest弘遠於src,用snprintf。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved