欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

#include <string.h>

bcopy() 函數(shù)用來復(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 個字節(jié)長度。

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

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

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

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

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

筆者定義了一個宏,在VC6.0下編譯通過,代碼如下:

#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 指針放在前
 printf("bcopy(): ");
 
 for(i = 0; i < 30; i++)
  printf("%c", dest[i]);
 
 memcpy(dest, src, 30); //dest 指針放在錢
 printf("\nmemcpy() : ");
 
 for(i = 0; i < 30; i++)
  printf("%c", dest[i]);
}

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

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

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

#include <string.h>

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

 void bzero(void *s, int n);

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

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

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

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

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

#include <string.h>

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

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

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

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

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

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

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


勉為其難的舉個例子吧:
復(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;
}

相關(guān)文章

  • Qt界面美化之自定義qss樣式表的詳細(xì)步驟

    Qt界面美化之自定義qss樣式表的詳細(xì)步驟

    很多人應(yīng)該和我一樣,想做界面才接觸的Qt,結(jié)果就是做不出來華麗的界面,下面這篇文章主要給大家介紹了關(guān)于Qt界面美化之自定義qss樣式表的詳細(xì)步驟,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-03-03
  • 深入學(xué)習(xí)C語言mmap和shm*的使用方法技巧

    深入學(xué)習(xí)C語言mmap和shm*的使用方法技巧

    本文將詳細(xì)介紹mmap和shm的工作原理,包括它們在內(nèi)存映射和共享內(nèi)存方面的優(yōu)勢和適用場景,同時,文章還會分享一些使用mmap和shm的技巧和經(jīng)驗,以幫助讀者優(yōu)化并提高程序性能,使你能夠在實際項目中更好地利用這些技術(shù)來加速數(shù)據(jù)共享和多線程應(yīng)用
    2023-10-10
  • VScode配置C++運行環(huán)境的完整步驟

    VScode配置C++運行環(huán)境的完整步驟

    這篇文章主要給大家介紹了關(guān)于VScode配置C++運行環(huán)境的完整步驟,文中通過圖文介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • C++?結(jié)合?opencv讀取圖片與視頻的方法

    C++?結(jié)合?opencv讀取圖片與視頻的方法

    這篇文章主要介紹了C++?結(jié)合?opencv讀取圖片與視頻,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-06-06
  • C語言實現(xiàn)可保存的動態(tài)通訊錄的示例代碼

    C語言實現(xiàn)可保存的動態(tài)通訊錄的示例代碼

    這篇文章主要為大家詳細(xì)介紹了如何利用C語言實現(xiàn)一個簡單的可保存的動態(tài)通訊錄,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)C語言有一定幫助,需要的可以參考一下
    2022-07-07
  • C語言中楊氏矩陣與楊輝三角的實現(xiàn)方法

    C語言中楊氏矩陣與楊輝三角的實現(xiàn)方法

    這篇文章主要給大家介紹了關(guān)于C語言中楊氏矩陣與楊輝三角的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05
  • 學(xué)好C++必須做到的50條 絕對經(jīng)典!

    學(xué)好C++必須做到的50條 絕對經(jīng)典!

    學(xué)好C++必須做到的50條,絕對經(jīng)典!想要學(xué)好C++的朋友一定要認(rèn)真閱讀本文,更要做到以下50條
    2016-09-09
  • C語言制作簡易金山打字通功能的代碼

    C語言制作簡易金山打字通功能的代碼

    今天小編就為大家分享一篇關(guān)于C語言制作簡易金山打字通功能的代碼,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • C語言鏈表案例學(xué)習(xí)之通訊錄的實現(xiàn)

    C語言鏈表案例學(xué)習(xí)之通訊錄的實現(xiàn)

    為了將所學(xué)到的鏈表的知識進(jìn)行鞏固學(xué)習(xí),做到學(xué)以致用,本文將利用鏈表制作一個簡單的通訊錄。文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2022-10-10
  • C語言實現(xiàn)飛機訂票系統(tǒng)

    C語言實現(xiàn)飛機訂票系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C語言實現(xiàn)飛機訂票系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-12-12

最新評論