打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
strcpy,memset,memcpy三者之间的根本区别

http://blog.csdn.net/educast/article/details/12969835

2013

 1.strcpy的用法

   strcpy的作用是拷贝字符串,当它遇到'\0'时结束拷贝,原型为:extern char *strcpy(char *dest,char *src);

就是把src的字符串复制到dest中,例如:

#include<string.h>

#include<iostream.h>

void main(){

char a[20],c[]="i am teacher!";

strcpy(a,c);

cout<<a<<endl;}

此小例子中,char c[]={'i',' ','a','m',' ','t','e','a','c','h','e','r','\0'};字符串一般默认后面有一个结束符,

当用到strcpy(a,c);函数时,把c中的字符串复制到a中,当遇到字符串中默认的结束符后,复

制结束。

2.memcpy的用法

memcpy用来做内存拷贝,可以拿它拷贝任何数据类型的对象,可以指定拷贝的数据长度;

原型函数为void *memcpy(void *dest, const void *src, size_t n);其中dest为返回的值。功能是从源src

所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址的起始位置。

例如:#include <stdio.h>
#include <string.h>
int main()
{
   char *s="Golden Global View";//此字符串总共有18个字符,再加上一个结束符,总共存放19个字符
   char d1[20],d2[20];
   memcpy(d1,s,(strlen(s)+1));//用memcpy函数,把s中字符串的首地址拷贝到d中,连续复制19个字符

memcpy(d2,s+14,5); //从第14个字符(V)开始复制,连续复制4个字符(View)
   printf("%d\n",strlen(s));
   printf("%s\n",d1);

printf("%s\n",d2);
   return 0;
}

3.memset的用法

memset的作用是对一段内存空间全部设置为某个字符,常用在内存空间的初始化,其原型函数为

void *memset(void *s,int c,size_t n);就是把已开辟内存空间s的首n个字节设置为c。

例如#include <stdio.h>

#include <memory.h>
#include <string.h>
int main()
{
char s[]="Golden Global View";
memset(s,'G',6);//把s中的前6个字符改成G,也就是把Golden改成GGGGGG
printf("%s\n",s);//输出为GGGGGG Global View
return 0;
}

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
不会这些字符串操作,你怎么精通C语言?如何玩转C++?
mem.h函数库
字符串以及内存操作相关函数
strcmp?strcpy?strcat?strlen?的实现?以及与strncat?st...
memset与memcpy函数使用详细说明
memcopy和memmove 区别(另strcpy(), strncpy()和memset()) 收藏
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服