strncat函数解释:
C 库函数 char *strncat(char *dest, const char *src, size_t n) 把 src 所指向的字符串追加到 dest 所指向的字符串的结尾,直到 n 字符长度为止。
代码如下
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
char* my_strncat(char* e, char* e1,int n)
{
char* first = e;
while (*e)
{
e++;
}
while (*e++=*e1++)
{
n--;
if (n == 0)
{
*e = '\0';
return first;
}
}
return first;
}
int main()
{
char a[20] = "ahdhsj";
char b[20] = "sdjskjk";
int n = 0;
printf("请输入要追加字符的个数\n");
scanf_s("%d", &n);
printf("%s", my_strncat(a, b, n));
return 0;
}
函数整体
函数区域解释
因为函数的返回值是字符型指针类型,所以我们先定义一个字符型指针first指向e
while函数循环将e指针指向'\0'处,方便将字符串追加到后面
while循环将e1指针指向的字符赋值给e指针指向的空间(因为此时e指针已经经过一次while循环,e指针已经指向'\0')
每循环一次,n--(n为追加字符的个数)
每次循环判断如果n已经为0,则将e指针现在指向的空间赋值为'\0',并返回指针first
如果当指针e1的值为'\0'时,赋值给e,n的值就算不为0,while函数也结束循环,并返回指针first
运行结果
最后运行结果虽然追加的字符的数量是9大于字符串本身的长度,但在while循环里已经终止了,当指针e1的值为'\0'时,赋值给e,防止了越界访问
好啦,今日的题目分享就到此结束了,如果有分享不好的地方望大家海涵