strcpy和memcpy的區別

轉載:http://www.cnblogs.com/stoneJin/archive/2011/09/16/2179248.html

strcpy與memcpy都是標準的C庫函數,strcpy提供了字符串的復制。即strcpy只用于字符串復制,并且它不僅復制字符串內容之外,還會復制字符串的結束符。

已知strcpy函數的原型是:char* strcpy(char* dest, const char* src);
memcpy提供了一般內存的復制。即memcpy對于需要復制的內容沒有限制,因此用途更廣。

void?*memcpy(?void?*dest,?const?void?*src,?size_t?count?);

char* strcpy(char* dest,const char*src)
{if (dest==NULL||src==NULL){return NULL;}char* pdest=dest;while((*dest++=*src++)!='\0');return pdest;
}
void* memcpy(void* dest,const void*src,size_t count)
{assert(dest!=NULL&&src!=NULL);char* pdest=(char*)dest;char* psrc=(char*)src;while(count-->0){*pdest++=*psrc++;}
return dest;
}
二者的區別在于:

1.復制的內容不同。strcpy只能用于字符串的復制,而memcpy可以復制任何內容,例如字符數組,整型,結構體,類等。

2.復制的方法不同。strcpy不需要指定復制的長度,一直復制到遇到字符串結束符\0結束,而memcpy則是根據第三個參數決定復制的長度。

3.用途不同。通常在復制字符串時用strcpy;而若復制其它類型數據,則一般用memcpy.





































本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/259314.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/259314.shtml
英文地址,請注明出處:http://en.pswp.cn/news/259314.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

js正則表達式語法

1. 正則表達式規則 1.1 普通字符 字母、數字、漢字、下劃線、以及后邊章節中沒有特殊定義的標點符號,都是"普通字符"。表達式中的普通字符,在匹配一個字符串的時候,匹配與之同樣的一個字符。 舉例1:表達式 "c&q…

計算機常見屏幕英語語句,計算機常見屏幕英語

計算機系統常見的屏幕英語對照,。、計算機常見屏幕英語(SCREEN ENGLISH)access 訪問 data 數據 hard disk 硬盤 files 文件directory 目錄 delete 刪除(同:remove) exists 存在 name 名稱 read-only 只讀 change 修改,改變 save 保存 password 密碼 conn…

[轉]Windows Phone 7程序設計”完全版電子書可以免費下載了

本文轉自:http://www.cnblogs.com/salam/archive/2010/10/29/1864246.html 現在學習Windows Phone 7開發資料十分有限,除了MSDN的官方開發文檔外和一些博客外,幾無其他的學習渠道。幸運地是美國的資深程序員兼作家Charles Petzold為大家免費放…

土豆春季實習試題之慘烈教訓

今天做土豆的春季C實習生招聘試題,很多不應該錯的錯了,在此挑出一些重要的錯誤,供自己參考,以免以后再犯。 一、一道編程題,很簡單,但是錯了。 題目: 輸入一個數組,求它的逆序數組…

linux-redhat替換yum網絡源為centos網絡源

2019獨角獸企業重金招聘Python工程師標準>>> 1.為什么要替換 redhat系統使用yum命令安裝軟件時會出現This system is not registered with RHN. RHN support will be disabled. 原因是redhat的yum安裝軟件需要注冊,是收費的。而centos的yum源是免費的。這…

計算機如何打開無線網絡適配器,win7系統下網絡適配器打不開怎么解決

通常情況下我們的電腦中都會有一個網絡適配器,這是計算機聯網的設備,不過最近有深度技術win7旗艦版系統用戶卻遇到了網絡適配器打不開的情況,該怎么辦呢,接下來系統城小編就給大家分享一下win7系統下網絡適配器打不開的具體解決方…

cf13C Sequence(DP)

題意: N個數。a1...aN。 對于每個數而言,每一步只能加一或減一。 問最少總共需要多少步使得新序列是非遞減序列。 N (1?≤?N?≤?5000) 思路: *一個還不知道怎么證明的結論(待證):最后的新序列b1...bN中…

【華為OD機試真題2023CD卷 JAVAJS】求幸存數之和

華為OD2023(C&D卷)機試題庫全覆蓋,刷題指南點這里 求幸存數之和 知識點數組 時間限制:1s 空間限制:256MB 限定語言:不限 題目描述: 給一個正整數列 nums,一個跳數 jump,及幸存數量 left。運算過程為:從索引為0的位置開始向后跳,中間跳過 J 個數字,命中索引為J+…

JavaScript編碼規范

1. 變量命名規范 變量名包括全局變量,局部變量,類變量,函數參數等等,他們都屬于這一類。 基本規范 變量命名都以類型前綴有意義的單詞組成,單詞首字母都需要大寫。例如:sUserName,nCount。 前綴…

大數據相加(轉載)

轉載:http://www.du52.com/text.php?id411 在這個大數據的年代里,我們不可避免會遇到兩個超越正常數據類型(如int,long,long long)的整數相加。顯然兩個大數據已經不能使用傳統的加號直接相加,但是相加的原理仍然是不…

微型計算機中使用的光盤應屬于什么媒體,計算機應用基礎練習題

計算機應用基礎一、判斷題1、微型機中硬盤工作時,應特別注意避免強烈震動【是】2、在Windows中,文件夾或文件的換名只有一種方法【否】3、用戶在連接網絡時,只可以使用域名,不可以使用IP地址【否】4、在WORD2007中,您可…

七天學會SALTSTACK自動化運維 (3)

七天學會SALTSTACK自動化運維 (3) 導讀SLSTOP.SLSMINION選擇器SLS文件的編譯總結參考鏈接導讀 SLS SLS (aka SaLt State file) 是 salkstack 中非常基礎和重要的一種配置文件. 重要程度僅次于minion和 master 的主配置文件(或者說是一種數據結構,使用yaml編寫), 因…

qt-embedded-linux-opensource-src-4.5.3移植到s3c6410

首先要有配置好的環境,本文使用的編譯環境如下: 主機系統:Ubuntu 9.10 主機編譯器:gcc 版本 4.4.1 交叉編譯器:arm-linux-gcc-4.0.1 軟件資源:qt-embedded-linux-opensource-src-4.5.3.tar.gz qt-x11-opens…

C++ 類中特殊的成員變量(常變量、引用、靜態)的初始化方法

<p style"line-height: 19px; margin: 10px auto; color: rgb(75, 75, 75); font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px;">有些成員變量的數據類型比較特別&#xff0c;它們的初始化方式也和普通數據類型的成員變量有所不同…

【Intellij Idea】設置JDK

1&#xff0c;File-->Project Structure 說明&#xff1a;可以設置整個工程的JDK&#xff0c;也設置每個modules的JDK,但是一般整個工程的JDK. 2&#xff0c;或者通過快捷鍵&#xff1a;ctrlaltshifts 轉載于:https://www.cnblogs.com/august-shi/p/6655469.html

c#操作html dom元素,C#獲取與修改HTML DOM元素信息

用C#和JavaScript交互首先要解決C#讀取HTML DOM元素的問題。 在System.Windows.Browser命名空間下&#xff0c;有一個HtmlDocument、HtmlPage、HtmlElement等類&#xff0c;可以用來讀取HTML DOM元素。其讀取方法和JavaScript如出一轍。引用內容&#xff1a; //初始化一個docum…

Hibernate之工具類HibernateUtil

原創文章&#xff0c;轉載請注明&#xff1a;Hibernate之工具類HibernateUtil By Lucio.Yang 1.最簡單的工具類&#xff0c;實現SessionFactory的單例共享&#xff0c;session的管理 package com.cc.hibernate;import org.hibernate.Session; import org.hibernate.SessionFac…

c++讀取文件–結束條件的判斷

轉載&#xff1a;http://blog.sina.com.cn/s/blog_623e3c050100neei.html 在使用C/C讀文件的時候&#xff0c;一定都使用過eof&#xff08;&#xff09;這個函數來判斷文件是否為空或者是否讀到文件結尾了&#xff0c;也會在使用這個函數的過程中遇到一些問題&#xff0c;如不…

繪圖用計算機配置要求,繪圖筆記本電腦基本配置要求 繪圖筆記本推薦

現在很多工業圖、工程圖都需要用電腦來話&#xff0c;比如CAD、PS、三維畫圖這些軟件對電腦的配置要求還是比較高的&#xff0c;還有一些對色彩要求高的動畫軟件&#xff0c;那就更加需要配置了&#xff0c;下面小編就來簡單說說繪圖筆記本電腦最基本的配置要求以及繪圖筆記本推…

關于dllimport的使用

最近做一個動態加載插件的項目&#xff0c;插件中的dll 主要是各廠商各型號的讀卡器的通用類庫&#xff0c;stdapi.dll&#xff0c;WltRS.dll&#xff0c;有的還有進一步封裝的dll&#xff0c;主要是為了簡化通用類庫的操作。 這些類庫都是用C語言&#xff0c;或者C來編寫的&am…