c语言中strncat函数,函数原型以头文件
1、函数原型
#include <stdio.h> char *strncat(char *s1, const char *s2, size_t n) //函数的返回值为指向char型的指针,形参为两个指针(函数间数组(字符串数组)的传递是以指向数组第一个元素的指针进行的)和正整数n。 { char *tmp = s1; // 将指针 tmp 初始化为指针 s1, 指向字符串数组str1第一个元素的指针 while(*s1) s1++; //将指针s1由指向字符串数组第一个元素,移动到指向字符串数组末尾的null字符。 while(n--) //循环判断条件1,n--当n小于字符串数组str2的时候,复制n个字符就截断。 此种情况s1指针最终所指的为str1最后一个字符后面的字符,不一定是null。 if(!(*s1++ = *s2++)) // 循环判断条件2,当n大于str2的长度的时候, 指针s2指向字符串数组末尾的null字符时,循环终止。 此种情况,s1指针最终所指为*s2传递给*s1的null字符。 break; *s1 = '\0'; // 之所以要这么做,是应为在n < str2的情况下,s1指针指向了str1最后一个字符的后一个字符,不一定是null,因此将其赋值为null,因为字符串终止的标志是null。 return tmp; } int main(void) { char str1[128] = "abcdefg"; char str2[128] = "123456789"; size_t n; printf("n = "); scanf("%u", &n); printf("concatenate result: %s\n", strncat(str1, str2, n)); return 0; }
2、加载strncat函数的头文件,可以直接调用strncat函数。
#include <stdio.h> #include <string.h> int main(void) { char str1[128] = "abcdefg"; char str2[128] = "123456789"; size_t n; printf("n = "); scanf("%u", &n); printf("concatenate result: %s\n", strncat(str1, str2, n)); return 0; }
分类:
c/c++
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
2020-06-01 linux系统删除行首空格命令的比较