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