C++连接一个字符串前n个字符至另一个字符串问题

将一个字符串的前n个字符连接至另一个子字符串
例如:str1=“abc”,str2=“def ” ,将str2 的前2个字符连接到str1中,最终str1=“abcde”。

#include<iostream>
using namespace std;
#include<cstring>
void output(char *str1);
char *memcpy(char *str1, char *str2, int n);
int main()
{
	int n= 3;   //n代表取str2前n个字符连接到str1
	char str1[20], str2[10];
	cout << "input the string of str1、str2:" << endl;
	gets_s(str1);   //得到两个字符串
	gets_s(str2);
	cout << "input the number of n:";
	cin >> n;
	memcpy(str1, str2,n);
	cout << str1<< endl;
	return 0;
}
char *memcpy(char *str1, char *str2, int n)  //连接函数
{
	char *des = str1;
	for (; *str1 != '\0';)  //遍历str1
	{
		str1++;
	}
	for (int i = 0; i < n;i++)   // 将str2前n个字符追加至str1
	{
		*str1 = *(str2 + i);//
		str1++;
	}
	*str1 = '\0';
	return des;
}

运行结果如图所示:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_43718414/article/details/84671625
今日推荐