自己实现strcat函数

2023-05-16

问题描述:

自己实现一个MyStrcat函数,要和C语言库函数的strcat函数完成同样的功能。

问题分析:
首先我们要了解一下strcat函数它到底做了什么事情

(1) 函数原型
char *strcat(char *dest, const char *src);

(2) 函数说明

dest 为目的字符串指针,src 为源字符串指针。strcat() 会将参数 src 字符串复制到参数 dest 所指的字符串尾部;dest 最后的结束字符 NULL 会被覆盖掉,并在连接后的字符串的尾部再增加一个 NULL。

注意:dest 与 src 所指的内存空间不能重叠,且 dest 要有足够的空间来容纳要复制的字符串。

(3) 返回值
返回dest 字符串起始地址。

根据以上的描述,我们可以来实现自己的代码了

参考代码:

#include <stdio.h>
#include <assert.h>

char* MyStrcat(char *dst, const char *src)
{
    assert(dst != NULL && src != NULL);
    char *temp = dst;
    while (*temp != '\0')
        temp++;
    while ((*temp++ = *src++) != '\0');

    return dst;
}

int main()
{
    char str1[10] = "abc";
    char str2[] = "bcd";
    char* str3 = MyStrcat(str1, str2);

    printf("str1=%s\n", str1);
    printf("str2=%s\n", str2);
    printf("str3=%s\n", str3);
    return 0;
}

运行结果:

这里写图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

自己实现strcat函数 的相关文章

随机推荐

  • spring boot 注册成 windows 服务

    1 windows系统下将 34 java jar 34 注册成 windows 服务 demo bat 64 echo off d span class token builtin class name cd span d span cl
  • Golang UI

    GUI库 Fyne 跨平台 xff0c 移动端 相对复杂 https github com fyne io fyne Walk 精于 windows https github com lxn walk
  • 解决golang编译提示dial tcp 172.217.160.113:443: connectex: A connection attempt failed

    废话不多说 xff0c 直接开讲 还多新手朋友在编译go的过程中是不是经常会遇到这样的报错 module Get https proxy golang org dial tcp 172 217 160 113 443 connectex A
  • 更新后报错

    更新后 xff0c 运行程序就报这个错 no required module provides package xxx go mod file not found in current directory or any parent dir
  • go: go.mod file not found in current directory or any parent directory; see ‘go help modules‘

    go go mod file not found in current directory or any parent directory see go help modules 此时还需要初始化Go moudle go mod init
  • vc++ 6.0bug C1853

    c documents and settingsstudent桌面musicplayermaindlg cpp 1 fatal error C1853 Debug MusicPlayer pch is not a precompiled h
  • 人工智能知识点汇总

    一 AI应用领域 AI目前主要的应用领域有3个方向 xff0c 包括 xff1a 计算机视觉 语音交互 自然语言处理 1 1 计算机视觉 xff08 CV xff09 计算机视觉是一门研究如何使机器 看 的科学 xff0c 就是指用摄影机和
  • Java17(291)之后 , 禁用了TLS1.1 , 使JDBC无法用SSL连接SqlServer怎么办,以下是解决办法

    修改java security文件 1 找到jre的java security文件 2 打开java security并搜索 jdk tls disabledAlgorithms 61 3 删掉TLSv1 TLSv1 1 4 保存 可以了
  • NumPy、Torch和Tensorflow 代码对比

    深度学习 在深入学习的基本单位上实施初级到高级操作 gt Excerpts 我习惯于为不同的问题创建新的深度学习架构 xff0c 但选择哪个框架 xff08 Keras Pytorch TensorFlow xff09 通常比较困难 由于其
  • 2023年 机器学习常用算法

    01 线性回归 线性回归 xff08 Linear Regression xff09 可能是最流行的机器学习算法 线性回归就是要找一条直线 xff0c 并且让这条直线尽可能地拟合散点图中的数据点 它试图通过将直线方程与该数据拟合来表示自变量
  • STM32上SPI+DMA实现大批量读取flash数据

    最近做项目需要使用SPI 43 DMA xff0c 为了做实验感受DMA传输数据块 xff0c 本人以SPI 43 DMA来读取flash中的数据 网上有很多例程是spi直接读取flash xff0c 无法提高性能 因为只是简单的实验SPI
  • stm32通用定时器1s延时实现LED闪烁

    stm32有很多定时器 xff0c 每种定时器的功能也不尽相同 xff0c 今天学习了如何用通用定时器实现1s延时 xff0c 使LED灯闪烁 xff0c 现总结如下 xff1a 步骤总结 xff1a 使能定时器时钟 gt 配置定时器结构体
  • JDK 中使用js调用java类、方法

    最近研究阅读这个APP 其主要功能就是通过一个个书源 从而实现移动端阅读的体验 比如说某些在线小说阅读网站 会加上相应的广告 从而影响用户阅读体验 于是阅读这个APP就是做了类似净化阅读体验 但是小说阅读网站千千万万 如果去适配每个小说阅读
  • Spring项目在tomcat启动时调用action

    1 实现ServletContextListener接口 添加 64 WebListener注解 2 按照示例写代码 xff1a 第一个是开启时 xff0c 第二个是销毁时
  • ubuntu16.04安装opencv3.4

    参考blog https blog csdn net u013066730 article details 79411767 直接进行 完全没问题 sudo apt get install build essential libgtk2 0
  • 使用switch-case语句输出成绩等级

    问题描述 xff1a 输入一个0 100范围内发分数 xff0c 在不同的等级范围内输出不同的值 xff0c 要求使用switch case控制 0 60 等级为E 60 70 等级为D 70 80 等级为C 80 90 等级为B 90 1
  • 输出图案(六)---输出空心矩形

    输入矩形的宽 xff0c 高 xff0c 输出该空心矩形 xff0c 用 来进行表示 参考代码1 xff1a span class hljs comment include lt stdio h gt span span class hlj
  • C语言中交换两个数的方法

    问题描述 xff1a 程序中有两个数a b 其中a 61 4 b 61 5 xff0c 现在希望交换两个数的值 xff0c 使得a 61 5 b 61 4 在这里我总结了一下目前我已经掌握的C语言中交换两个数的方法 xff0c 主要如下几种
  • 输出平行四边形图案(多种方案)

    问题描述 xff1a 使用 在控制台打印平行四边形 例如 xff1a 平行四边形中最长的一行输出的 是5个 xff0c 则平行四边为 xff1a span class hljs bullet span span class hljs emp
  • 自己实现strcat函数

    问题描述 xff1a 自己实现一个MyStrcat函数 xff0c 要和C语言库函数的strcat函数完成同样的功能 问题分析 xff1a 首先我们要了解一下strcat函数它到底做了什么事情 1 函数原型 char strcat char