C language exercise 47: Simulate implementation of strncat

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:

Guess you like

Origin blog.csdn.net/2301_77479435/article/details/132790245