char* (char* dest, const char* src , size_num);
返回值:
dest目标数组的起始地址
注意:
当追加个数大于源字符串的长度时,则追加完源字符串后,直接在目标字符串后加'\0'
当追加个数小于源字符串的长度时,则追加个数为0后,在目标字符串后加'\0'
特别注意:
while(*ret++){
;
}
ret--;------------>ret等于'\0'之后,ret再次++,因为时后缀加加;
与while(*ret != '\0'){ret++; };
#include<stdio.h>
#include<string.h>
#include<assert.h>
char* my_strncat(char* dest, const char* src, int num){
assert(dest);
assert(src != NULL);
char* ret = dest;
while(*ret != '\0'){
ret++;
}
while(num--){
if((*ret++ = *src++) && (*src == '\0')) //追加到*src为'\0'结束
return dest;
}
*ret = '\0'; // 追加到num=0时结束
return dest;
}
int main(){
char arr1[1024] = "hello ";
char arr2[] = "world!";
char* ret = strncat(arr1,arr2,6);
printf("%s \n",ret);
return 0;
}