[C++]数组处理相关函数(memcpy/memset等)

头文件:string.h或者memory.h

【1】void *memcpy(void *dest, const void *src, size_t n);//数组元素拷贝
  功能:从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址的起始位置中

【2】void *memset(void *s, int ch, size_t n);//重置数组元素与初始化
  功能:将s中当前位置后面的n个字节 (typedef unsigned int size_t )用 ch 替换并返回 s 。
  memset:作用是在一段内存块中填充某个给定的值,它是对较大的结构体或数组进行清零操作的一种最快方法

#include<iostream>
#include<string.h>
using namespace std; int main(){
int array_a[12] = {23,45,6,7,4776,834,99954};
int array_b[12]; memset(array_b, -1, sizeof(array_a)); //将数组b的各元素初始化为-1 memcpy(array_b, array_a+1, sizeof(int)*6);
for(int i=0;i<12;i++){
printf("%d ", array_b[i]);
}
return 0;
}

[C++]数组处理相关函数(memcpy/memset等)

【3】int memcmp(const void *buf1, const void *buf2, unsigned int count);//数组元素比较

  功能:比较内存区域buf1和buf2的前count个字节。注意:按照字节比较的

  返回值:当buf1<buf2时,返回值小于0;当buf1==buf2时,返回值=0;当buf1>buf2时,返回值大于0

【4】void *memmove( void* dest, const void* src, size_t count );//

  功能:由src所指内存区域复制count个字节到dest所指内存区域。

  memmove用于从src拷贝count个字节到dest,如果目标区域和源区域有重叠的话,memmove能够保证源串在被覆盖之前将重叠区域的字节拷贝到目标区域中

  但复制后src内容会被更改。但是当目标区域与源区域没有重叠则和memcpy函数功能相同。

// memmove.c
#include <stdio.h>
#include <string.h> int main(void){
char s[]="Golden Global View";
memmove(s,s+7,strlen(s)+1-7);
printf("%s",s);
getchar();
return 0;
}

=>output:

  Global View

  

上一篇:java正则表达式之java小爬虫


下一篇:使用signalr实现网页和微信公众号实时聊天(上)