函数理解记忆:str表示的是该函数为string.h里的函数。nnat比strcat多了一个n表示是有数量number的追加。
函数的传入值和返回值: char* strncat( char*brr,char*arr,size_t n); 分别传入被追加的字符串,追加的字符串,追加字符串的长度。
举例:
函数的自我实现:
char* my_strncat(char* brr, char* arr,size_t n) {
for (; *brr != '\0'; ++brr); //寻找brr要追加的地方
for (; n-- && (*arr) != '\0'; *(brr++) = *(arr++)); //进行追加,进行n次,如果在此之前就遇到'\0'那 return brr; 么就提前结束
}
函数缺点:如果brr空间不够,函数依然是一样的会报错而不是扩容。这里我就不改进了。
把原理和实现的困难说一下。既然不足要么realloc,但是传入的brr不是用malloc或者calloc或者realloc出来的,所以不能用。那就只能自己用malloc或者calloc一个出来。但是原来的brr内存就没用了且不释放。