http://blog.csdn.net/educast/article/details/12969835
2013
1.strcpy的用法
strcpy的作用是拷貝字符串,當(dāng)它遇到'\0'時(shí)結(jié)束拷貝,原型為:extern char *strcpy(char *dest,char *src);
就是把src的字符串復(fù)制到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'};字符串一般默認(rèn)后面有一個(gè)結(jié)束符,
當(dāng)用到strcpy(a,c);函數(shù)時(shí),把c中的字符串復(fù)制到a中,當(dāng)遇到字符串中默認(rèn)的結(jié)束符后,復(fù)
制結(jié)束。
2.memcpy的用法
memcpy用來做內(nèi)存拷貝,可以拿它拷貝任何數(shù)據(jù)類型的對象,可以指定拷貝的數(shù)據(jù)長度;
原型函數(shù)為void *memcpy(void *dest, const void *src, size_t n);其中dest為返回的值。功能是從源src
所指的內(nèi)存地址的起始位置開始拷貝n個(gè)字節(jié)到目標(biāo)dest所指的內(nèi)存地址的起始位置。
例如:#include <stdio.h>
#include <string.h>
int main()
{
char *s="Golden Global View";//此字符串總共有18個(gè)字符,再加上一個(gè)結(jié)束符,總共存放19個(gè)字符
char d1[20],d2[20];
memcpy(d1,s,(strlen(s)+1));//用memcpy函數(shù),把s中字符串的首地址拷貝到d中,連續(xù)復(fù)制19個(gè)字符
memcpy(d2,s+14,5); //從第14個(gè)字符(V)開始復(fù)制,連續(xù)復(fù)制4個(gè)字符(View)
printf("%d\n",strlen(s));
printf("%s\n",d1);
printf("%s\n",d2);
return 0;
}
3.memset的用法
memset的作用是對一段內(nèi)存空間全部設(shè)置為某個(gè)字符,常用在內(nèi)存空間的初始化,其原型函數(shù)為
void *memset(void *s,int c,size_t n);就是把已開辟內(nèi)存空間s的首n個(gè)字節(jié)設(shè)置為c。
例如#include <stdio.h>
#include <memory.h>
#include <string.h>
int main()
{
char s[]="Golden Global View";
memset(s,'G',6);//把s中的前6個(gè)字符改成G,也就是把Golden改成GGGGGG
printf("%s\n",s);//輸出為GGGGGG Global View
return 0;
}