第一次尝试
#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
。函数功能实现很简单,需要注意参数合法性检验。