使用memmove对数组中的指定内容进行删除操作

来源:互联网 发布:av5644769只有我知 编辑:程序博客网 时间:2024/04/30 00:11
#include <iostream>#include <stdlib.h>#include <string.h>using namespace std;int main(){int i,len,cnt;unsigned short t;char *p,*p_end;char buffer[200];    char s[256]="使用memmove函数对数组中指定的内容进行删除操作";    char *q=s;    int temp;    printf("before delete:\n%s\n\n",s);    p=strstr((const char*)s,"memmove");//指向了首地址,即m    p_end=strstr((const char*)s,"函数");//结束地址    len = p_end-p;//计算长度 printf("len=%d\r\n",len);temp=p-s;//计算即将删除的内容与数组首地址的偏移量     memmove(s+temp,s+temp+len,strlen(s)+1-len);//把后面的内容往前面移动,实现删除的操作 printf("%s\n",s);   //继续删除 “中指定的内容” p=strstr((const char*)s,"中");//指向了首地址,即m    p_end=strstr((const char*)s,"进行");//结束地址    len = p_end-p;//计算长度 printf("len=%d\r\n",len);temp=p-s;//计算即将删除的内容与数组首地址的偏移量     memmove(s+temp,s+temp+len,strlen(s)+1-len);//把后面的内容往前面移动,实现删除的操作 printf("%s\n",s);       return 0;}


内存移动函数,参数为目标地址,源地址,长度。

注意,这是一个会改变数组内容的函数。

配合strstr使用效果非常好,注意使用strstr定位时,尽量选用唯一的标识。

上述程序执行结果:



0 0
原创粉丝点击