日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

c语言字符指针清零,C语言中字符串的内存地址操作的相关函数简介

發布時間:2024/7/23 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c语言字符指针清零,C语言中字符串的内存地址操作的相关函数简介 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

C語言bcopy()函數:復制內存(字符串)頭文件:

#include

bcopy() 函數用來復制內存(字符串),其原型為:

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

【參數】src 為源內存塊(字符串)指針,dest 為目標內存塊(字符串)指針,n 為要復制的內存(字符串)的前 n 個字節長度。

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

bcopy() 不檢查內存(字符串)中的空字節 NULL。

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

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

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

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

#include

#include

#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]);

}

執行結果:

bcopy() : string(a)

memcpy() :string(a)

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

#include

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

void bzero(void *s, int n);

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

bzero()會將參數s 所指的內存區域前n 個字節,全部設為零值。

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

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

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

#include

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

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

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

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

bcmp() 函數不檢查NULL。

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

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

勉為其難的舉個例子吧:

復制純文本新窗口

#include

#include

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语言中字符串的内存地址操作的相关函数简介的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。