(1)strstr寻找子字符串函数的实现#define_CRT_SECURE_NO_WARNINGS1#include<stdio.h>#include<string.h>#include<assert.h>typedefunsignedintuint;char*my_strncat(char*dest,constchar*src,uintcount);{/*my_strncat实现两个相同字符串的链接,因为在这..
分类:
其他好文 时间:
2015-12-03 02:20:58
阅读次数:
174
memcpy内存拷贝函数,memcpy函数的功能是从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址的起始位置中。函数实现void*my_memcpy(void*buf1,constvoid*buf2,intcount)
{
assert(buf1);
assert(buf2);
void*ret=buf1;
char*dest=(char*)buf1;
char..
分类:
其他好文 时间:
2015-12-02 01:09:07
阅读次数:
146
不考虑性能的话,memcpy()在C99编译器下可以写为:void *memcpy(void *restrict dest, const void *restrict src, size_t n)
{
int i;
const char *s = src;
char *d = dest;
assert(dest && src);...
分类:
其他好文 时间:
2015-12-01 19:37:22
阅读次数:
116
题意:给定n个人,分两天晚上去夜总会开派对,要求每天恰好有n/2个人去,且每人去的夜总会各不相同。每个人对不同的晚上不同的夜总会有不同的满意度,求一个方案使得所有人的满意度之和最大。夜总会数量=人的数量=n,2#include #define mv(a,b) memcpy(a,b,(n'9'); d...
分类:
其他好文 时间:
2015-11-27 23:26:36
阅读次数:
216
内存重叠拷贝函数
#include<stdio.h>
#include<assert.h>
voidmy_memmove(void*p1,voidconst*p2,size_tcount)
{
char*dest=(char*)p1;
char*src=(char*)p2;
assert(p1);
assert(p2);
if((dest>src)&&(dest<src+count))
{
while(count--)..
分类:
编程语言 时间:
2015-11-21 07:16:26
阅读次数:
153
题目:自己定义一个函数,实现my_memcpy和my_memmove函数。题目分析:memcpy函数主要实现的是内存的拷贝,函数接受任意类型的参数,并且有拷贝个数的限制,函数与strcpy函数在功能上有相似点,也有不同点。memmove函数在memcpy函数的基础上解决了内存重叠的问题。下面是memcpy..
分类:
其他好文 时间:
2015-11-20 23:16:41
阅读次数:
320
1.模拟实现strcpy
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<assert.h>
char*my_strcpy(char*dst,constchar*src)
{
assert(dst!=NULL);
assert(src!=NULL);
char*ret=dst;
while((*dst++=*src++)!=‘\0‘)
;
returnret;..
分类:
编程语言 时间:
2015-11-19 16:57:52
阅读次数:
260
这里memcpy与memmove函数的模拟实现,需要用到空指针来传递参数,之后强制类型转换为char型,用size_t这个宏接受偏移量进行偏移,模拟实现如下:memcpy函数:void*my_memcpy(void*dst,constvoid*src,size_tcount)
{
assert(dst);
assert(src);
void*ret=dst;
while(count--)
{
..
分类:
编程语言 时间:
2015-11-19 07:16:11
阅读次数:
160
#define_CRT_SECURE_NO_WARNINGS1
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
void*my_memmove(void*p1,void*p2,size_tcount)
{
assert(p1);
assert(p2);
char*dest=(char*)p1;
char*src=(char*)p2;
dest=dest+16;
src=src+8;
if((src<de..
分类:
编程语言 时间:
2015-11-19 07:15:14
阅读次数:
201
#define_CRT_SECURE_NO_WARNINGS1
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
void*my_memcpy(void*p1,constvoid*p2,size_tcount)
{
assert(p1);
assert(p2);
char*dest=(char*)p1;
char*src=(char*)p2;
char*ret=dest;
while(count--)
{
*d..
分类:
编程语言 时间:
2015-11-19 07:14:53
阅读次数:
135