• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C语言 > C语言中字符串的内存地址操作的相关函数简介

C语言中字符串的内存地址操作的相关函数简介

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了c语言字符串,c语言字符串定义,c语言输入字符串,c语言字符串函数,c语言字符串比较等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

C语言bcopy()函数:复制内存(字符串)
头文件:

#include <string.h>
</div>

bcopy() 函数用来复制内存(字符串),其原型为:

 void bcopy(const void *src, void *dest, int n);
</div>

【参数】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 <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]);
}
</div>

执行结果:

bcopy() : string(a)
memcpy() :string(a)
</div>

C语言bzero()函数:将内存(字符串)前n个字节清零
头文件:

#include <string.h>
</div>

bzero() 会将内存块(字符串)的前n个字节清零,其原型为:

 void bzero(void *s, int n);
</div>

【参数】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 <string.h>
</div>

bcmp() 比较内存(字符串)的前n个字节是否相等,其原型为:

 int bcmp(const void *s1, const void * s2, int n);
</div>

【参数】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 <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;
}

</div>

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • C语言中函数返回字符串的方法汇总
  • C语言 字符串首字母转换成大写简单实例
  • c语言 数据结构实现之字符串
  • C语言之实现字符串小写变大写的实例
  • c语言将字符串中的小写字母转换成大写字母
  • C语言中时间戳转换成时间字符串的方法
  • 详解C语言中的字符串拼接(堆与栈)
  • C语言实现返回字符串函数的四种方法
  • 浅谈C语言之字符串处理函数
  • C语言解字符串逆序和单向链表逆序问题的代码示例

相关文章

  • 2017-05-28详解C++中的const关键字及与C语言中const的区别
  • 2017-05-28C++Zip压缩解压缩示例(支持递归压缩)
  • 2017-05-28讲解C++编程中Address-of运算符&的作用及用法
  • 2017-05-28C++中的操作符重载详细解析
  • 2017-05-28C++实现strcmp字符串比较的深入探讨
  • 2017-05-28C++继承中的访问控制实例分析
  • 2017-05-28深入理解C++的动态绑定与静态绑定的应用详解
  • 2017-10-30Find K-th Smallest Pair Distance:查找数组元素中差值第K大的两个元素的差值
  • 2017-05-28合并排序(C语言实现)
  • 2017-05-28C 语言进制之间的转换

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • C++模板之特化与偏特化详解
    • 深入分析C++中几个最不常用的关键字
    • c语言文件读写示例(c语言文件操作)
    • C++ 构造双向链表的实现代码
    • Cocos2d-x UI开发之文本类使用实例
    • 用C语言判断字符是否为空白字符或特殊字符的方法
    • 枚举窗口句柄后关闭所有窗口示例
    • 深入C/C++浮点数在内存中的存储方式详解
    • C++位运算符详解(异或运算符和移位运算符)
    • C++产生随机数的实现代码

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有