字符串函数strcpy,strcat,memcpy的实现

原创 2016年05月31日 11:58:10

实现strcpy

/****************************************
*vs 2015测试成功
*如要考虑到dest的长度小于src,则需要判断条件
*邮箱 yqtao@whu.edu.cn
*欢迎交流
*****************************************/
#include "stdafx.h"
#include <iostream>
#include <vector>
#include <string>
using namespace std;
char* mystrcpy(char* dest, const char* src)
{
    //考虑条件
    if (nullptr == dest || nullptr == src)
        return nullptr;
    char* start = dest;
    while (*src)
    {
        *start = *src;
        src++;
        start++;
    }
    *start= '\0';
    //简单写法,其中最后的已有\0了
    //while ((*start++=*src++)!='\0');
    return dest;
}
//测试代码
int main(int argc, char*argv) 
{
    char src[6] = { 'h','e','l','l','o'};
    char *dest=new char[strlen(src) + 1];
    cout << mystrcpy(dest, src) << endl;
    delete[]dest;
    dest = nullptr; 
}

实现strcat

char* mystrcat(char* dest, const char* src)
{

    char* start = dest;
    while (*dest++);
    dest--;//指向字符串的结束符
    //可用dest=dest+strlen(dest)达到\0位置
    while (*dest++ = *src++);//循环赋值
    return start;
}

memcpy实现

#include "stdafx.h"
#include <iostream>
#include <vector>
#include <string>
using namespace std;
//memcpy不仅仅能赋值char类型,size为赋值的个数
void* mymemcpy(void* dest, const void* src,size_t size)
{
    if (dest == nullptr || src == nullptr)
        return nullptr;
    char *tempTo = (char*)dest;//保存首地址
    char *tempFrom = (char*)src;
    while (size-- > 0)
        *tempTo++ = *tempFrom++;//赋值size个值
    return dest;
}
int main(int argc, char*argv) 
{
    char src[6] = { 'h','e','l','l','o'};
    char dest[20] = { 'i' };
    mymemcpy(dest, src, 3);
    cout << dest<< endl;

}
版权声明:本文为博主原创文章,未经博主允许不得转载。

算法学习 - 01背包问题(动态规划C++)

动态规划 01背包 问题描述 求解思路 代码实现 放入哪些物品 代码动态规划我在上一篇博客里已经讲了一点动态规划了,传送门:算法学习 - 动态规划(DP问题)(C++)这里说一下,遇到动态规划应该如何...

C++面试题(一)——基础概念篇

C++面试题——基础概念篇 普通C++面试时候的一般都是这个套路:      1,C++和C相比最大的特点                    1)面向对象:封装,继承,多态。           ...

纯C 字符串操作函数 实现 (strcpy, strncpy, memcpy, memset, strcat, strlen ... )

转:http://blog.csdn.net/crazyjixiang/article/details/6720236   实现C/C++中的字符串操作函数是很练内功的,别看着这些函数很简单,自己...
  • zmlcool
  • zmlcool
  • 2011年08月26日 21:36
  • 478

纯C 字符串操作函数 实现 (strcpy, strncpy, memcpy, memset, strcat, strlen ... ) .

摘自:http://blog.csdn.net/crazyjixiang/article/details/6720236# 实现C/C++中的字符串操作函数是很练内功的,别看着这些函数很简单,自...

字符串函数的原型实现(strcpy, strcat, strcmp, memset, memcpy, memmove)

C++字符串原型函数实现

模拟实现字符串操作函数(strcpy,strstr,strcat,strcmp,strlen)与内存操作函数(memcpy,memmove)

一、字符串操作         strcpy(str1,str2) 复制字符串         strcat(str1,str2) 附加字符串         strlen(str) 取字符串长度 ...

c语言中字符串函数strlen()、strcat()、strcpy()、strcmp()及内存操作函数memset()、memcpy()、memcmp()、memmove()的使用及编码实现

c语言中字符串函数strlen()、strcat()、strcpy()、strcmp()及内存操作函数memset()、memcpy()、memcmp()、memmove()的使用及编码实现 str...

strlen函数 strcpy函数 strcmp函数 strstr函数 strcat函数 memcpy函数 memmove函数 以及字符串反转函数的实现

//编写一个函数计算一个字符串的长度 #include #include //int my_strlen(char *str) //{ // int len = 0; // whi...

字符串 函数sprintf、strcpy 、strncpy及 memcpy , strftime,strcat

字符串 函数sprintf、strcpy 、strncpy及 memcpy , strftime,strcat (2012-02-06 16:56) 标签:  div  class  hi...
  • zzy7075
  • zzy7075
  • 2012年08月06日 14:47
  • 1182

部分字符串库函数的重写(源码) toupper,memcpy,memmove,memset,memchr,strlen,strcpy,strcat,strcmp,strchr

#include #include #include //////////////////////////////////////////////////// //Convert cha...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:字符串函数strcpy,strcat,memcpy的实现
举报原因:
原因补充:

(最多只允许输入30个字)