strcat,strncat函数

一.strcat函数

//字符串连接函数

char* strcat(char* destination,const char* source);
char* dest  目标字符串   const char* src 源字符串

库中实现的strcat函数

int main ()
{
  char str[80];
  strcpy (str,"these ");
  strcat (str,"strings ");
  strcat (str,"are ");
  strcat (str,"concatenated.");
  puts (str);
  return 0;
}

模拟实现strcat函数

char* My_strcat(char* dest, const char* src)
{
	assert(dest);
	assert(src);
	char* p = dest;
	while (*dest != '\0')
	{
		++dest;
	}
	//此时出了循环,dest已经遍历到最后
	while (*dest = *src)
	{
		++dest;
		++src;
	}
	return p;
}

int main()
{
	char str1[] = "we ";
	char str2[] = "are ";
	char str3[] = "happy!";
	printf("%s\n", My_strcat(str1, str2));
	printf("%s\n", My_strcat(str1, str3));
	system("pause");
	return 0;
}


二.strncat函数

char* strncat(char* destination,const char* source,size_t num)
char* dest  目标字符串  char* src  源字符串   size_t num   要连接的字符个数

库中实现的strncat 函数

int main ()
{
  char str1[20];
  char str2[20];
  strcpy (str1,"To be ");
  strcpy (str2,"or not to be");
  strncat (str1, str2, 6);
  puts (str1);
  return 0;
}



模拟实现strncat 函数

char* My_strncat(char* dest, const char* src, size_t len)
{
	assert(dest);
	assert(src);
	char* p = dest;
	while (len--)
	{
		if (*dest != '\0')
		{
			++dest;
		}
		if (*dest = *src)
		{
			++dest;
			++src;
		}
	}
	return p;
}

int main()
{
	char str1[] = "we ";
	char str2[] = "are ";
	char str3[] = "happy!";
	printf("%s\n", My_strncat(str1, str2, strlen(str2)));
	printf("%s\n", My_strncat(str1, str3, strlen(str3)));
	system("pause");
	return 0;
}


  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值