strncat的使用及其模拟实现

devtools/2024/10/21 9:11:43/

一、什么是strncat

strncat是一个C标准库函数,用于将一个字符串的一部分追加到另一个字符串的末尾。

strncat的语法格式:

char *strncat(char *dest, const char *src, size_t n);

其中:

  1. dest是目标字符串;
  2. src是源字符串;
  3. n是要拷贝的字符个数; 

也就是说,src指向的字符串的前n个字符会追加到dest指向的字符串的末尾,并在dest末尾添加终止符。如果src字符串的长度小于n,则追加整个src字符串。如果src字符串的长度大于或等于n,则只追加src字符串的前n个字符。

二、strncat的使用

以下是strncat的简单使用示例:

#include<stdio.h>//strncat的使用
#include<string.h>//使用库函数strncat需要包含的头文件int main()
{char source[] = " world!";char dest[20] = "Hello";strncat(dest, source, 7);//将source中的七个字符衔接到dest的末尾,拷贝结束后会添加一个终止符printf("%s\n", dest);return 0;
}

三、strncat的模拟实现

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>//strncat的模拟实现
//strncat的原型:char *strncat(char *dest, const char *src, size_t n);char* my_strncat(char* dest, const char* src, size_t n)
{char* start = dest;while (*start!='\0'){start++;}//跳出循环时*start='\0'while (n != 0){*start = *src;start++;src++;n--;}*start = '\0';return dest;
}int main()
{char dest[20] = "Hello";char source[] = " world!";my_strncat(dest, source, 6);printf("%s\n", dest);return 0;
}

更多C语言相关练习请跳转test_c: C语言练习,包括常见语法练习以及小项目练习。 (gitee.com) 


http://www.ppmy.cn/devtools/32241.html

相关文章

云HIS系统全套源码:采用Angular+Nginx+Java+Spring,SpringBoot技术开发(开箱即用)

​ 医院信息管理系统HIS包括门&#xff08;急&#xff09;诊管理、住院管理、药库&#xff08;房&#xff09;管理、门诊电子处方、住院医嘱管理、电子病历、护理文书、病案管理等多个管理模块&#xff0c;涵盖了医疗信息管理的各个业务环节。在全院联网的基础上&#xff0c;把…

OpenCV的图像矩(64)

返回:OpenCV系列文章目录&#xff08;持续更新中......&#xff09; 上一篇&#xff1a;OpenCV如何为等值线创建边界旋转框和椭圆(63) 下一篇 &#xff1a;OpenCV4.9的点多边形测试(65) Image Moments&#xff08;图像矩&#xff09;是 OpenCV 库中的一个功能&#xff0c;它可…

vue的action与mutation 的区别

在 Vue.js 的状态管理库 Vuex 中&#xff0c;mutations 和 actions 都是用于更改状态的方法&#xff0c;但它们之间存在一些重要的区别。下面我将通过举例来说明这些区别&#xff1a; 1. 基本定义 mutations&#xff1a;用于直接修改状态&#xff08;state&#xff09;。它们是…

【再探】设计模式—抽象工厂及建造者模式

抽象工厂模式和建造者模式都属于创建型模式。两者都能创建对应的对象&#xff0c;而创建者模式更侧重于创建复杂对象&#xff0c;将对象的创建过程封装起来&#xff0c;让客户端不需要知道对象的内部细节。 1 抽象工厂模式 需求&#xff1a; 在使用工厂方法模式时&#xff0…

2013NOIP普及组真题 4. 车站分级

线上OJ&#xff1a; 一本通&#xff1a;http://ybt.ssoier.cn:8088/problem_show.php?pid1964 核心思想&#xff1a; 1、原文中提到 “如果这趟车次停靠了火车站 x&#xff0c;则始发站、终点站之间所有级别大于等于火车站 x 的都必须停靠”&#xff0c;如果设停靠站为A&…

《Beginning C++20 From Novice to Professional》第七章Working with Strings

字符串处理是非常令人关注的领域&#xff0c;因为大部分情况下我们的程序不是在处理数字而是在处理字符串&#xff0c;对于字符串的表示和操作成为编程语言中非常重要的一部分 书里也强调C中对于字符串的处理要好过C风格的char数组&#xff0c;更高效也更安全 本章我们可以学…

Matlab : unique函数的用法

unique是MATLAB中一个非常实用的函数&#xff0c;用于找出数组中的唯一值。它有几种不同的用法&#xff0c;可以根据需要选择合适的参数来控制输出的行为。以下是unique函数的基本用法和一些常见参数的介绍&#xff1a; 基本语法&#xff1a; C unique(A) [C,IA,IC] unique…

ATTCK的优缺点分别是什么

ATT&CK(Adversarial Tactics, Techniques, and Common Knowledge)框架是一个广泛使用的资源,它提供了对网络威胁的深入洞察,特别是关于攻击者可能采取的战术、技术和程序(TTPs)。以下是ATT&CK框架的优缺点: 优点: 全面的威胁情报:ATT&CK框架详细描述了各种…