C++連線一個字串前n個字元至另一個字串問題
阿新 • • 發佈:2018-12-13
將一個字串的前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;
}
執行結果如圖所示: