模拟实现字符串函数(6):strncat

1.函数介绍

翻译一下:就是当源字符串长度小于num时会只追加源字符串的最大长度,大于num时正常追加

2.思路分析

1.首先将dest的指针保留用于返回,随后遍历到dest的末尾;

2.判断一下num是否大于src的长度,如果小于的话,将src遍历追加完即可。

复制代码
char* my_strncat(char* dest, char* src, size_t num)
{
	char* ret = dest;
	while (*dest)
	{
		dest++;
	}
	//源字符串长度大于num
	if (strlen(src) >= num)
	{
		while (num--)
		{
			*dest++ = *src++;
		}
	}
	else
	{
		while (*src != '\0')
		{
			*dest++ = *src++;
		}

	}
	return ret;
}

int main()
{
	char str1[30] = "abcdefghij";
	char str2[] = "aaattttt";
	my_strncat(str1, str2, 5);
	printf("%s\n", str1);
	return 0;
}
相关推荐
Escalating_xu10 小时前
【C 语言】深入理解指针(5):sizeof、strlen、数组名语义与指针笔试题全解析
java·c语言·开发语言
Code_Solitude11 小时前
c语言:递归
java·c语言·算法
万年咸鱼11 小时前
解决C语言的内存释放机制
java·c语言·python
老王爱玩车13 小时前
自定义类型:结构体
c语言·开发语言·学习
Logic10114 小时前
C语言/数据结构字符串题解:最短循环节——找出能重复构成原串的最短基础子串
c语言·数据结构·字符串·枚举·时间复杂度·算法题·kmp优化
我就是不信14 小时前
CuTest:轻量级 C 语言单元测试框架实战指南
c语言·单元测试·log4j
Gust of wind15 小时前
串与KMP模式匹配:存储结构、基本操作、next数组手算
c语言·数据结构·后端·算法
Navigator_Z15 小时前
LeetCode //C - 1283. Find the Smallest Divisor Given a Threshold
c语言·算法·leetcode
今夜有雨.17 小时前
图像运算、掩膜/ROI 与绘制交互
c语言·数据结构·c++·qt·算法·计算机视觉
知识分享小能手18 小时前
C学习教程,从入门到精通,C语言概述 —— 知识点详解(1)
c语言·开发语言·学习