Simulate implementation of strncat
Code:
#if 0
#include<stdio.h>
#include<assert.h>
char* my_strncat(char* dest, const char* src, size_t num) {
assert(dest != NULL && src != NULL);
char* ret = dest;
while (num--) {
*dest++ = *src++;
}
return ret;
}
int main() {
char arr1[20] = "hahaha";
char arr2[10] = "yyyyyy";
my_strncat(arr1,arr2,2);
printf("%s\n", arr1);
return 0;
}
#end if
//#if 0
#include<stdio.h>
#include<assert.h>
char* my_strncat(char* dest, const char* src, size_t num) {
assert(dest && src );
char* ret = dest;
/*while (num--) {
*dest++ = *src++;
}*/
while (*dest != '\0') {
dest++;
}
size_t i = 0;
for (; src != 0 && i < num; i++) {
dest[i] = src[i];
}
return ret;
}
int main() {
char dest[20] = "hahaha";
char src[10] = "yyyyyy";
my_strncat(dest, src, 2);
printf("%s\n", dest);
return 0;
}
//#endif
result: