模拟实现strncat,strncpy函数

1.模拟实现strncat

#include
#include
#include
//模拟实现strncat函数(长度受限制的字符串拼接)
//函数原型:char* strncat(char* dest,count char* src,size_t count)
//作用:将源字符串里的count个字符拼接到目标字符串上
//注意:目标字符串空间必须足够大
void myStrncat(char* dest, const char* src, size_t count) {
//参数合法性判定
	assert(dest != NULL && src != NULL);
	//将dest地址保存起来
	char* ret = dest;
	//找到目标字符串的末尾
	while (*dest!='\0') {
		dest++;
	}
	//拼接count个
	while (count--) {
		if (*src != '\0') {
			*dest++ = *src++;
		}
	}
	*dest = '\0';
	return ret;
}
int main() {
	//目标字符串空间必须足够大,如下面的str1应写入一个足够大的数字
	//否则会提示str1被破坏(如果不写长度只有5)
	char str1[20] = "hehe";
	char str2[] = "yyy";
	myStrncat(str1, str2, 2);
	printf("%s\n", str1);
	system("pause");
	return 0;
}

2.模拟实现strncpy

//模拟实现strncpy:将指定长度的字符串复制到目标字符串中
//函数原型:char* strncpy(const char* dest,const char* src,size_t n)
#define _CRT_SECURE_NO_WARNINGS
#include
#include
#include
void myStrncpy( char* dest, const char* src, size_t n) {
	//参数合法性判定
	assert(dest != NULL && src != NULL);
	//将dest的地址保存起来
	char* ret = dest;
	while (n--) {
		*dest++ = *src++;
	}
	return ret;
}
int main() {
	char str1[20] = "hahaha";
	char str2[10] = "eeeeee";
	int n = 0;
	printf("请输入复制个数:");
	scanf("%d", &n);
	myStrncpy(str1, str2, n);
	printf("%s\n", str1);
	system("pause");
	return 0;
}

你可能感兴趣的:(笔记,c语言)