学习笔记——strlen、strcpy、memcpy的c语言实现,不调用库函数
2010-10-18 01:05
726 查看
/*
*Magicman
*myStrcpy.c
*不用库函数,实现字符串拷贝函数(strcpy)
*/
#include <stdio.h>
#include <assert.h>
char *myStrcpy( char *strDest, const char *strSrc )
{
//对源地址和目的地址加非0 断言
assert( (strDest != NULL) && (strSrc != NULL) );
//为了实现链式操作,将目的地址返回
char *address = strDest;
//循环,拷贝字符串
while( (*strDest++ = *strSrc++) != '/0' );
return address;
}
int main(int argc, char argv[])
{
char str1[] = "Test myStrcpy!";
char str2[20] = "";
char *p = NULL;
myStrcpy(str2, str1);
printf(str2);
printf("/n");
myStrcpy(p,str1);
return 0;
}
/*
*Magicman
*myStrlen
*不用库函数,求一个字符串的长度
*/
#include <stdio.h>
#include <assert.h>
int myStrlen(const char *str)
{
assert(str != NULL); //断言
int len = 0;
while (*str++ != '/0')
{
len++;
}
return len;
}
int main(int argc, char *argv[])
{
char str1[] = "Testing myStrlen!";
printf("str1 = %s/n", str1);
printf("len = %d/n", myStrlen(str1));
return 0;
}
/*
*Magicman
*myMemcpy.c
*不调用库函数,实现内存拷贝
*/
#include <stdio.h>
#include <assert.h>
#include <stdlib.h>
void *myMemcpy(void *dest, const void *src, int len)
{
assert((dest != NULL) && (src != NULL) && (len >= 0));
if (dest == src)
{
return dest;
}
while (len-- > 0)
{
*(char *)dest++ = *(char *)src++;
}
return dest;
}
int main(int argc, char argv[])
{
char str[20] = "Testing myMemory!";
char pstr[20] = "";
char *pp = str;
int ia[10] = {1,2,3,4,5,6,7,8,9,10};
int ib[10] = {};
int *ip = NULL;
myMemcpy((void *)pstr, (void *)str, sizeof(str));
printf("%s/n", pstr);
printf("%s/n", myMemcpy((void *)pp, (void *)str, 20));
myMemcpy((void *)ib, (void *)ia, 5*sizeof(int));
for (ip = ib; ip < ib + 10; ip++)
{
printf("%d ", *ip);
}
printf("/n");
return 0;
}
*Magicman
*myStrcpy.c
*不用库函数,实现字符串拷贝函数(strcpy)
*/
#include <stdio.h>
#include <assert.h>
char *myStrcpy( char *strDest, const char *strSrc )
{
//对源地址和目的地址加非0 断言
assert( (strDest != NULL) && (strSrc != NULL) );
//为了实现链式操作,将目的地址返回
char *address = strDest;
//循环,拷贝字符串
while( (*strDest++ = *strSrc++) != '/0' );
return address;
}
int main(int argc, char argv[])
{
char str1[] = "Test myStrcpy!";
char str2[20] = "";
char *p = NULL;
myStrcpy(str2, str1);
printf(str2);
printf("/n");
myStrcpy(p,str1);
return 0;
}
/*
*Magicman
*myStrlen
*不用库函数,求一个字符串的长度
*/
#include <stdio.h>
#include <assert.h>
int myStrlen(const char *str)
{
assert(str != NULL); //断言
int len = 0;
while (*str++ != '/0')
{
len++;
}
return len;
}
int main(int argc, char *argv[])
{
char str1[] = "Testing myStrlen!";
printf("str1 = %s/n", str1);
printf("len = %d/n", myStrlen(str1));
return 0;
}
/*
*Magicman
*myMemcpy.c
*不调用库函数,实现内存拷贝
*/
#include <stdio.h>
#include <assert.h>
#include <stdlib.h>
void *myMemcpy(void *dest, const void *src, int len)
{
assert((dest != NULL) && (src != NULL) && (len >= 0));
if (dest == src)
{
return dest;
}
while (len-- > 0)
{
*(char *)dest++ = *(char *)src++;
}
return dest;
}
int main(int argc, char argv[])
{
char str[20] = "Testing myMemory!";
char pstr[20] = "";
char *pp = str;
int ia[10] = {1,2,3,4,5,6,7,8,9,10};
int ib[10] = {};
int *ip = NULL;
myMemcpy((void *)pstr, (void *)str, sizeof(str));
printf("%s/n", pstr);
printf("%s/n", myMemcpy((void *)pp, (void *)str, 20));
myMemcpy((void *)ib, (void *)ia, 5*sizeof(int));
for (ip = ib; ip < ib + 10; ip++)
{
printf("%d ", *ip);
}
printf("/n");
return 0;
}
相关文章推荐
- 【转】字符串操作函数 C语言实现 (strcpy, strncpy, memcpy, memset, strcat, strlen ... )
- strcpy strlen memcpy strcat strcmp strstr strrev函数的实现代码
- memcmp,memcpy,memmove,memset,strcat,strcmp,strcpy,strlen 8个函数的实现
- C语言中strlen() strcpy() strcat() strcmp()函数的实现方法
- C语言实现strlen,atoi, strcpy等函数
- 模拟实现字符串操作函数(strcpy,strstr,strcat,strcmp,strlen)与内存操作函数(memcpy,memmove)
- 纯C 字符串操作函数 实现 (strcpy, strncpy, memcpy, memset, strcat, strlen ... )
- memcpy, strcpy, strlen, strcmp, itoa, atoi 的函数实现
- C语言如何调用 memcpy 函数 实现内存拷贝
- 纯C 字符串操作函数 实现 (strcpy, strncpy, memcpy, memset, strcat, strlen ... ) .
- 字符串处理函数strlen、strcpy、strcat、strcmp和convert的C语言实现
- 模拟实现strcmp,strncmp,strstr,strcat,strncat,strcpy,strncpy,strlen ,memcpy,memmove等函数
- 字符串处理函数的模拟实现(strlen、strstr、strcat、strcmp、strcpy、memmove、memcpy)
- C语言字符串相关库函数的实现strcpy、memcpy、strncpy、strcat、strncpy、memset、memcpy、strcpy
- memcpy、strcpy、strncpy、strlen、strcat几个函数的实现
- 纯C 字符串操作函数 实现 (strcpy, strncpy, memcpy, memset, strcat, strlen ... )
- strlen,strcpy,strcat,strcmp四个函数的原型,memcpy,memset的实现
- 纯C 字符串操作函数 实现 (strcpy, strncpy, memcpy, memset, strcat, strlen ... )
- 读书笔记:自定义函数实现字符串处理函数----strlen、strcmp、strcat、strcpy
- 和字符串有关的函数的模拟实现 strlen strcpy strcat strstr strcmp