1.memset #include <stdio.h> #include <string.h> int main() { //char *s="My Dream Come true";//用來初始化字元指針的字元串常量會被編譯器安排到只讀數據存儲區,是不可以修改的 char s[] ="My Dre
1.memset
#include <stdio.h> #include <string.h> int main() { //char *s="My Dream Come true";//用來初始化字元指針的字元串常量會被編譯器安排到只讀數據存儲區,是不可以修改的 char s[] ="My Dream Come true";//在棧中分配空間 memset(s,'b',6);//以位元組為單位 printf("%s\n",s);//bbbbbbam Come true return 0; }
memset可以方便的清空一個結構類型的變數或數組。
例:
變數:struct position pos;
memset(&pos,0,sizeof(struct position));
數組:
struct position pos[10];
memset(pos,0,sizeof(struct position)*10);
2.memcpy
通常在複製字元串時用strcpy,而需要複製其他類型數據時則一般用memcpy
memcpy可以複製任意內容,例如字元數組、整型、結構體、類等
//memcpy用來做記憶體拷貝,你可以拿它拷貝任何數據類型的對象,可以指定拷貝的數據長度 #include <stdio.h> #include <string.h> int main() { char a[27]={'\0'}, b[30]={'\0'}; for(int i=0;i<26;i++) a[i] = 'A'+ i; memcpy(b, a, sizeof(b));//將a數組中的內容拷貝到b數組中去,b數組長度不應小於a puts(b);//ABCD.....Z return 0; }
如果上面的b數組長度小於a,則b中先會被賦值和b數組等長的字元串,另外,會追加整個a數組的字元串