C语言:模拟实现strcat

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>

char *my_strcat(char *dest, char *src)
{
    assert(dest);
    assert(src);
    char *ret = src;
    while (*src)
    {
        src++;
    }
    while (*src++ = *dest++)
    {
        ;
    }
    return ret;
}

int main()
{
    char arr1[20] = "hello ";
    char arr2[] = "world!";
    char *ret = my_strcat(arr2, arr1);
    printf("%s", ret);
    system("pause");
    return 0;
}
时间: 2024-07-28 16:19:46

C语言:模拟实现strcat的相关文章

C语言::模拟实现strcat函数

题目要求 编写一个C语言程序模拟实现strcat函数. (我们不妨先模拟实现一下strcat函数,然后再对照一下string.h库函数中strcat函数代码的实现,与大师肩并肩.) 算法分析 strcat函数功能:将两个字符串连接起来,最终返回连接后字符串的首地址. strcat函数原型:char *strcat(char *dest,const char *src); 我们清楚地了解了strcat函数功能和原型之后,就很容易分析出算法... 算法总结 第一步:将dest指向的内容循环遍历至'\

用c语言.模拟实现strcpy,strcat,strcat,memcpy,memmove

1.模拟实现strcpy #include<stdio.h> #include<stdlib.h> #include<string.h> #include<assert.h> char *my_strcpy(char *dst, const char *src) { assert(dst != NULL); assert(src != NULL); char *ret = dst; while ((*dst++ = *src++) != '\0') ; re

语言模拟ATM自动取款机系统

C语言实验报告       题目名称:C语言模拟ATM自动取款机系统 C语言模拟实现ATM自动取款机功能:输入密码,余额查询,取款,存款,转账,修改密码,退出功能: 代码实现的功能: 账号及密码输入:用户输入密码,才能进入. 登陆成功界面:共有六个选项,查询余额.取款.存款.转账,修改密码,退出分别对应1,2,3,4,5,6选项,若序号输入不正确会予以提示. 选定1后,进入查询余额界面: 选定2后,进入取款界面: 选定3后,进入存款界面: 选定4后,修改密码,选定5,进入转账:选定6,退出界面:

关于c语言模拟c++的多态

关于c++多态,个人认为就是父类调用子类的方法,c++多态的实现主要通过虚函数实现,如果类中含有虚函数,就会出现虚函数表,具体c++多态可以参考<深度探索c++对象模型> c语言模拟多态主要通过函数指针实现,可以参考<Object Orientated Programming in ANSI-C> //shape.h #ifndef __SHAPE_H #define __SHAPE_H #include <stdio.h> #include <stdlib.h&

C语言::模拟实现strlen函数

编写一个C语言程序模拟实现strlen函数. 算法 strlen函数功能是计算字符串中字符的个数.(除\0外) 而字符串本身就是一个字符数组,只不过末尾以\0结束. 因此,我们只需遍历除\0之外的所有字符即可. 有三种方法可以解决这个问题. 算法总结 方法一:设置一个整型计数器,遍历字符串. 方法二:通过不断函数自身的递归. 方法三:与方法一类似,设置一个char*变量标记字符串尾部,通过指针相减得到字符长度. 核心代码 //方法一:通过设置整型计数器,模拟实现strlen函数. int my_

C语言::模拟实现strcmp函数

题目要求 编写一个C语言程序模拟实现strcmp函数. (我们依然先模拟实现strcmp函数,然后再对照string.h库中strcmp函数的实现,对比与大师之间的差距.) 算法分析 通过上一篇文章:C语言::strcmp函数功能.原型.用法及实例我们获得了strcmp函数的如下信息: strcmp原型:int strcmp( const char *s1, const char *s2 ); strcmp功能:将两个字符串自左向右逐个字符进行相比(根据ASCII值大小),直到出现不同的字符或遇

C语言模拟按键代码

其实 keybd_event 这个API的模拟按键需要按键码,如果用户输入一个字符,怎么用这个API打印出来呢?其实很简单.这个我是在易语言中发现的易语言中的一个 #R键 的值和R的ASCII码是一样的.也就是说,用户输入一个字符,用keybd_event这个API打印出来是很简单的.我们可以全部读取,取出一个字符的ASCII码,然后打出来,再取出另一个,以此类推......全部读取的话用动态数组是很好实现的. 拼音必须是大写的,否则打的可能都是数字还有一个MFC版本的 http://www.c

C语言模拟泛型-粘贴符##的使用 迁移

因为百度空间没有了,所及将以前写的一篇关于C语言粘贴符的使用的随笔迁移至此. 最近在百度知道看到有关C语言泛型的问题因为举例比较长,在这里作为回答,并作为C语言知识的记录,如果有不同意见,欢迎大家互相探讨,其实我的模拟泛型的思路就是使用粘贴符##以及宏定义完成.下面举例双向链表的实现,代码如下: #include "stdafx.h" #include <string.h> // 这里是对双向链表的定义,相当于泛型模板 #define DECLARE(node_type)

模拟实现strcat和strncat

今天我们模拟实现一下strcat和strncat这两个函数. 首先我们先了解一下strcat这个函数,它的意思是将第二个字符串连接到第一个字符串的末尾.我们先看下函数原型: char *strcat(char *dest, char *src) 把src所指字符串添加到dest结尾处(覆盖dest结尾处的'\0')并添加'\0'.下面我们来看一下程序: #include <stdio.h> #include <assert.h> char *my_strcat (char *des