最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語(yǔ)言中字符串的內(nèi)存地址操作的相關(guān)函數(shù)簡(jiǎn)介

 更新時(shí)間:2015年08月26日 11:29:02   投稿:goldensun  
這篇文章主要介紹了C語(yǔ)言中字符串的內(nèi)存地址操作的相關(guān)函數(shù),包括bcopy()函數(shù)和bzero()函數(shù)以及bcmp()函數(shù),需要的朋友可以參考下

C語(yǔ)言bcopy()函數(shù):復(fù)制內(nèi)存(字符串)
頭文件:

#include <string.h>

bcopy() 函數(shù)用來(lái)復(fù)制內(nèi)存(字符串),其原型為:

 void bcopy(const void *src, void *dest, int n);

【參數(shù)】src 為源內(nèi)存塊(字符串)指針,dest 為目標(biāo)內(nèi)存塊(字符串)指針,n 為要復(fù)制的內(nèi)存(字符串)的前 n 個(gè)字節(jié)長(zhǎng)度。

bcopy()與memcpy()一樣都是用來(lái)拷貝src 所指的內(nèi)存內(nèi)容前n 個(gè)字節(jié)到dest 所指的地址,不過(guò)參數(shù)src 與dest 在傳給函數(shù)時(shí)是相反的位置。

bcopy() 不檢查內(nèi)存(字符串)中的空字節(jié) NULL。

實(shí)際上,bcopy() 和 memcpy() 功能相同,用來(lái)復(fù)制內(nèi)存塊的前 n 個(gè)字節(jié),但是 s1, s2 兩個(gè)參數(shù)為指針,又很奇怪的位于 string.h 文件中,所以也可以用來(lái)復(fù)制字符串。

注意:bcopy() 不是標(biāo)準(zhǔn)函數(shù),沒(méi)有在ANSI中定義,筆者在VC6.0和MinGW5下編譯沒(méi)通過(guò);據(jù)稱Linux下的GCC支持,不過(guò)筆者沒(méi)有親測(cè)。鑒于此,還是使用 memcpy() 替代吧。

更多信息請(qǐng)查看:C語(yǔ)言bcopy()和memcpy()、bzero()和memset()、bcmp()和memcmp()幾個(gè)函數(shù)的差別

筆者定義了一個(gè)宏,在VC6.0下編譯通過(guò),代碼如下:

#include <stdio.h>
#include <string.h>
#define bcopy(a, b, c) memcpy(a, b, c)
main(){
 char dest[30] = "string(a)";
 char src[30] = "string\0string";
 int i;
 bcopy(src, dest, 30); //src 指針?lè)旁谇?
 printf("bcopy(): ");
 
 for(i = 0; i < 30; i++)
  printf("%c", dest[i]);
 
 memcpy(dest, src, 30); //dest 指針?lè)旁阱X
 printf("\nmemcpy() : ");
 
 for(i = 0; i < 30; i++)
  printf("%c", dest[i]);
}

執(zhí)行結(jié)果:

bcopy() : string(a)
memcpy() :string(a)

C語(yǔ)言bzero()函數(shù):將內(nèi)存(字符串)前n個(gè)字節(jié)清零
頭文件:

#include <string.h>

bzero() 會(huì)將內(nèi)存塊(字符串)的前n個(gè)字節(jié)清零,其原型為:

 void bzero(void *s, int n);

【參數(shù)】s為內(nèi)存(字符串)指針,n 為需要清零的字節(jié)數(shù)。

bzero()會(huì)將參數(shù)s 所指的內(nèi)存區(qū)域前n 個(gè)字節(jié),全部設(shè)為零值。

實(shí)際上,bzero(void *s, int n) 等價(jià)于 memset((void*)s, 0,size_tn),用來(lái)將內(nèi)存塊的前 n 個(gè)字節(jié)清零,但是 s 參數(shù)為指針,又很奇怪的位于 string.h 文件中,也可以用來(lái)清零字符串。

注意:bzero() 不是標(biāo)準(zhǔn)函數(shù),沒(méi)有在ANSI中定義,筆者在VC6.0和MinGW5下編譯沒(méi)通過(guò);據(jù)稱Linux下的GCC支持,不過(guò)筆者沒(méi)有親測(cè)。鑒于此,還是使用 memset() 替代吧。

C語(yǔ)言bcmp()函數(shù):比較內(nèi)存(字符串)的前n個(gè)字節(jié)是否相等
頭文件:

#include <string.h>

bcmp() 比較內(nèi)存(字符串)的前n個(gè)字節(jié)是否相等,其原型為:

 int bcmp(const void *s1, const void * s2, int n);

【參數(shù)】s1, s2 為需要比較的兩塊內(nèi)存(或兩個(gè)字符串),n 為要比較的長(zhǎng)度。

【返回值】如果 s1, s2 的前 n 個(gè)字節(jié)相等或者 n 等于 0,則返回 0,否則返回非 0 值。

bcmp() 函數(shù)不檢查NULL。

實(shí)際上,bcmp() 和 memcmp() 功能相同,用來(lái)比較內(nèi)存塊的前 n 個(gè)字節(jié)是否相等,但是 s1, s2 兩個(gè)參數(shù)為指針,又很奇怪的位于 string.h 文件中,也可以用來(lái)比較字符串。

注意:bcmp() 不是標(biāo)準(zhǔn)函數(shù),沒(méi)有在ANSI中定義,筆者在VC6.0和MinGW5下編譯沒(méi)通過(guò);據(jù)稱Linux下的GCC支持,不過(guò)筆者沒(méi)有親測(cè)。鑒于此,還是使用 memcmp() 替代吧。


勉為其難的舉個(gè)例子吧:
復(fù)制純文本新窗口

#include <stdio.h>
#include <string.h>
int main ()
{
 char *s1 = "Golden Global View";
 char *s2 = "Golden Global View";
 if( !bcmp(s1, s2, 7) )
  printf("s1 equal to s2 in first 7 bytes");
 else
  printf("s1 not equal to s2 in first 7 bytes");
 return 0;
}

  • C/C++ assert()函數(shù)用法案例總結(jié)

    C/C++ assert()函數(shù)用法案例總結(jié)

    這篇文章主要介紹了C/C++ assert()函數(shù)用法案例總結(jié),本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-09-09
  • C++之list容器模擬實(shí)現(xiàn)方式

    C++之list容器模擬實(shí)現(xiàn)方式

    這篇文章主要介紹了C++之list容器模擬實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • C語(yǔ)言驅(qū)動(dòng)開(kāi)發(fā)內(nèi)核枚舉IoTimer定時(shí)器解析

    C語(yǔ)言驅(qū)動(dòng)開(kāi)發(fā)內(nèi)核枚舉IoTimer定時(shí)器解析

    這篇文章主要為大家介紹了C語(yǔ)言驅(qū)動(dòng)開(kāi)發(fā)內(nèi)核枚舉IoTimer定時(shí)器解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-10-10
  • 七大經(jīng)典排序算法圖解

    七大經(jīng)典排序算法圖解

    本文詳細(xì)講解了七大經(jīng)典排序算法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-12-12
  • 使用C++程序獲取新浪行情數(shù)據(jù)的方法

    使用C++程序獲取新浪行情數(shù)據(jù)的方法

    這篇文章介紹了在一定的周期范圍內(nèi)去抓取新浪中行情數(shù)據(jù),通過(guò)更新數(shù)據(jù)來(lái)緩解構(gòu)造模擬數(shù)據(jù)與真實(shí)數(shù)據(jù)差異性,感興趣的朋友可以了解一下
    2015-07-07
  • C++中的pair使用詳解

    C++中的pair使用詳解

    pair是定義在<utility>中的生成特定類型的模板,它的作用是把一組數(shù)據(jù)合并為一體,實(shí)際上是一個(gè)擁有兩個(gè)成員變量的struct,這篇文章主要介紹了c++的pair使用,需要的朋友可以參考下
    2022-09-09
  • C++中的類型查詢之探索typeid和type_info(推薦)

    C++中的類型查詢之探索typeid和type_info(推薦)

    C++ 是一種靜態(tài)類型語(yǔ)言,這意味著每個(gè)變量的類型在編譯時(shí)就已經(jīng)確定,在這篇技術(shù)分享中,我們將探討 C++ 中的 typeid 和 type_info,以及如何使用它們來(lái)獲取類型信息,需要的朋友可以參考下
    2024-05-05
  • Win11+?VS2022編譯?FFmpeg6.0?靜態(tài)庫(kù)的詳細(xì)過(guò)程

    Win11+?VS2022編譯?FFmpeg6.0?靜態(tài)庫(kù)的詳細(xì)過(guò)程

    這篇文章主要介紹了Win11+VS2022編譯FFmpeg6.0靜態(tài)庫(kù)的方法,本文通過(guò)圖文實(shí)例代碼相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-08-08
  • vs2019中使用MFC構(gòu)建簡(jiǎn)單windows窗口程序

    vs2019中使用MFC構(gòu)建簡(jiǎn)單windows窗口程序

    今天發(fā)現(xiàn)網(wǎng)上好多MFC代碼都不能用,給大家分享一個(gè)簡(jiǎn)單的MFC窗口語(yǔ)言,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • 最新評(píng)論

    大悟县| 石阡县| 防城港市| 太保市| 南和县| 镇原县| 静安区| 仲巴县| 铁岭市| 利津县| 建阳市| 墨玉县| 邹城市| 花莲县| 额尔古纳市| 马龙县| 姚安县| 璧山县| 大方县| 南岸区| 青海省| 镇原县| 竹北市| 汽车| 全南县| 巨野县| 嘉鱼县| 迁安市| 北辰区| 库尔勒市| 永康市| 呼和浩特市| 福鼎市| 乌审旗| 邯郸市| 志丹县| 甘洛县| 岱山县| 布拖县| 门源| 搜索|