c语言中字符串地址符,C++_C语言中字符串的内存地址操作的相关函数简介,C语言bcopy()函数:复制内存(字 - phpStudy...

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;

}

相关阅读:

PHP实现根据图片色界在不同位置加水印的方法

Winform窗体效果实例分析

深入PHP运行环境配置的详解

Html5元素及基本语法详解

SQL语句实现查询SQL Server服务器名称和IP地址

手动配置phpmyadmin和mysql密码的两种方案

Java结合百度云存储BCS代码分享

Android入门之TableLayout应用解析(二)

使用javascript实现ListBox左右全选,单选,多选,全请

ichart.js绘制虚线、平均分虚线效果的实现代码

Android编程实现仿心跳动画效果的方法

比例尺、缩略图、平移缩放之百度地图添加控件方法

怎么提高MAC的开机速度有哪些比较不错的实用方法

javascript正则表达式总结

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值