使用指针封装一个实现strcat功能的函数

2023-10-27

strcat函数的原理:

        将两个字符串内的数据进行拼接,将拼接好的数据放在目标字符串中。

编程思想:

         使用char类型的两个指针(dest,src)指向目标字符串和只读字符串首地址,通过while循环使指针(dest)指向目标字符串尾地址,再通过while循环从只读字符串首位的值赋给目标字符串尾地址的后一位,直到指针src指向只读字符串尾地址的后一位(‘\0’),最后将‘\0’赋给目标字符串的尾地址。

具体代码:

#include <stdio.h>
/*
功能:从终端获取两个字符串,实现字符串的拼接
参数:目标字符串dest,只读字符串src
返回值:指向拼接后目标字符串的指针
 */
char *my_strcat(char *dest,const char *src){ //第二个字符串的元素不可改变 需加const关键字
	char *first = dest;
	while(*first){    //将指针dest指向目标字符串的尾地址
		*first++;
	}
	while(*src){        
		*first++ = *src++;    //将只读字符串拼接在目标字符串后
	}
	*first = *src;          //将只读字符串‘\0’赋值给目标字符串的最后一位
	return dest;

}

int main(int argc, const char *argv[])
{
	char s1[64] = "0";        //定义目标字符串s1的大小并将其初始化
	char s2[64] = "0";        //定义字符串s2的大小并将其初始化
	printf("输入字符串s1:\n");
	scanf("%s",s1);
	printf("输入字符串s2:\n");
	scanf("%s",s2);
	printf("字符串s1变为:%s\n",my_strcat(s1,s2));
	return 0;
}

 注意:

         1.主函数中的目标字符串(s1)和只读字符串(s2)的大小会影响终端输入各字符串元素的个数。

        2.函数体中最后必须将只读字符串的末位‘\0’赋给目标字符串,不然目标字符串在输出时可能错误判断结尾,输出随机值。

运行结果:

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

使用指针封装一个实现strcat功能的函数 的相关文章

随机推荐

  • MySQL视图

    一 视图 介绍及基本语法 视图 View 是一种虚拟存在的表 视图中的数据并不在数据库中实际存在 行和列数据来自定义视图的查询中使用的表 并且是在使用视图时动态生成的 通俗的讲 视图只保存了查询的SQL逻辑 不保存查询结果 所以我们在创建视
  • VUE移动端使用overflow-auto滚动条坑

    解决 滚动条 滑动 一次就一直出现在底部问题 在关闭模态框之前 操作原生dom var box document querySelector div box scrollTop 0 设置 滚动条的 位置 为 0 这样 每次重新打开另一条数据
  • 新版husky8.0配合commitlint,规范我们的git的提交记录

    文章目录 安装 配置 第一步 初始化husky 第二步 添加git提交的hook 第三步 在项目根目录新建配置文件 commitlint config js 验证一下 附1 git commit完整的规范 附2 commitlint con
  • C+复习Parameter Passing

    double average double a double b call by value void swap double a double b call by reference in C 11 this is more techni
  • 在Ubuntu环境下用gcc命令运行c程序以及Makefile编译

    在Ubuntu环境下用gcc命令运行c程序以及Makefile编译 用gcc命令编译c语言 用VC 6 0编译C语言 用Makefile编译C语言 用gcc命令编译c语言 主程序main1 c include
  • C51 数码管的动态显示 dynamic display method of digital tube

    代码 include
  • Java代码实现使用while循环接受键盘的输入,如果输入的exit就退出,否则提示用户继续输入

    import java util Scanner 需求 编写代码按照要求实现以下的功能 使用while循环接受键盘的输入 如果输入的exit就退出 否则提示用户继续输入 要点提取 用while true 控制循环输入 用break跳出循环
  • html 基本标签

    1标题标签 h1 h6 h1 这是一段文字 h1 2 段落标签 p p 自动换行 p 这是一段文字 p 3 换行标签和水平线标签 br hr 4 图像标签 img src 图片路径 用于定义html页面的图像 img src img img
  • spss数据预处理步骤_数据处理之剔除无效问卷

    我们都知道在数据分析前 首先需要对数据进行预处理 检查数据中是否含有存在无效样本 异常值等 如果同一样本中存在大量漏填数据或相似答案过多的情况这样的样本都应该算作无效样本来处理 无效样本的常见使用场景 问卷研究中乱填问卷的样本 数据库下载的
  • 动态负荷对电力系统摆幅曲线的影响研究(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码实现 1 概述 摆动曲线仿真是评估扰动后电力系统稳定性的重
  • Selenium成长之路-19alert/prompt/confirm弹框处理

    webdriver 中处理 JavaScript 所生成的 alert confirm 以及 prompt 是很简单的 具体思路是使用 switch to alert 方法定位到 alert confirm prompt 然后使用 text
  • 哪些行业需要连接云专线?

    在诸多行业之中 有一些行业对数据安全性要求高 业务需要实时性 业务需求复杂 往往需要建立起私密 高速 安全的传输通道 云专线是他们经常采用的方案 具体来讲 都有哪些行业需要连接云专线呢 请见下方 1 金融行业 金融行业需要进行大量的数据传输
  • 前端绘图方式Canvas和SVG的区别

    Canvas和SVG是html5中支持2种可视化技术 都是可以在画布上绘制图形和放入图片 下面来介绍和分析一下他们 一 Canvas 和 SVG 简介 1 什么是Canvas Canvas 是H5新出来的标签
  • typora快捷键大全

    typora快捷键大全 一 菜单栏 文件 alt F 编辑 alt E 段落 alt P 格式 alt O 视图 alt V 主题 alt T 帮助 alt H 二 文件 新建 Ctrl N 新建窗口 Ctrl Shift N 打开 Ctr
  • order by、sort by、distribute by和cluster by 的区别,使用场景

    在Hive中 order by sort by distribute by和cluster by是用于数据排序和分区的关键字 它们在语义和使用场景上有一些区别 1 order by order by关键字用于对查询结果进行全局排序 它会将所
  • C 语言 strftime()和strptime()

    C 语言 将时间转换为字符串和字符串转换为时间格式 首先 要先知道C语言头文件time h下的 struct tm结构体 struct tm int tm sec 秒 范围从 0 到 59 int tm min 分 范围从 0 到 59 i
  • 使用扩展卡尔曼滤波(EKF)融合激光雷达和雷达数据(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码实现 1 概述 大多数自动驾驶汽车都配备了激光雷达和雷达
  • 内存屏障(cpu内存屏障 与java内存屏障)

    文章目录 CPU 内存屏障 定义 读写屏障指令 为什么会出现内存屏障 java内存屏障 java内存屏障存在意义 java中内存屏障的主要类型 LoadLoad 屏障 StoreStore 屏障 LoadStore 屏障 StoreLoad
  • Linux:工具(vim,gcc/g++,make/Makefile,yum,git,gdb)

    目录 工具功能 1 vim 1 1 vim的模式 1 2 vim常见指令 2 gcc g 2 1 预备知识 2 2 gcc的使用 3 make Makefile make Makefile的使用 4 yum yum三板斧 5 git git
  • 使用指针封装一个实现strcat功能的函数

    strcat函数的原理 将两个字符串内的数据进行拼接 将拼接好的数据放在目标字符串中 编程思想 使用char类型的两个指针 dest src 指向目标字符串和只读字符串首地址 通过while循环使指针 dest 指向目标字符串尾地址 再通过