//第一次尝试:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
char* myStrncat(char* destin, const char* source, size_t num) {
if (destin == NULL || source == NULL) {
return NULL;
}
int i = 0;
while (destin[i] != '\0') {
i++;
}
for (int k = 0; k < num; k++, i++) {
if (source[k]!='\0') {
destin[i] = source[k];
}
else {
destin[i] = '\0';
return destin;
}
}
}
int main() {
printf("请输入字符串:");
char str1[1024] = { 0 };
scanf("%s", str1);
printf("请输入拼接字符串:");
char str2[1024] = { 0 };
scanf("%s", str2);
printf("输入要拼接几个字符:");
size_t num = 0;
scanf("%d", &num);
myStrncat(str1, str2, num);
//strncat(str1, str2, num);
printf("%s\n", str1);
return 0;
}
//模拟实现strncat函数,char* strncat(char* destin,const char* source,size_t num)
//把src所指字符串的前num个字符添加到dest结尾处(覆盖dest结尾处的'\0')并添加'\0'。
//函数功能实现很简单,需要注意参数合法性检验