字串的複製與連線
阿新 • • 發佈:2018-11-03
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
using namespace std;
// 函式StrCpy:複製字串
// 引數:src-被複制的字串
// 返回值:複製完的字串
char* StrCpy(char* src)
{
//計算長度
int len = 0;
while (src[len] != 0)
len++;
//申請記憶體
char* dst = (char*)malloc(sizeof(char)*(len + 1));
//複製字串
for (int i = 0; i < len; i++)
dst[i] = src[i];
dst[len] = '\0';
return dst;
}
// 函式StrCat:連線字串
// 引數:src1-被連線的字串,src2-被連線的另外字串
// 返回值:連線後的字串
char* StrCat(char* str1, char* str2)
{
int i = 0;
int j = 0;
//計算長度
char* p= (char*)malloc(sizeof(char)*(10000));
p = str1;
while (*p != 0)
{
i++;
p++;
}
p = str2;
while (*p != 0)
{
j++;
p++;
}
//申請記憶體
char* L = (char*)malloc(sizeof(char)*(i + j + 2));
//複製字串
for (int i1 = 0; i1 < i; i1++)
L[i1] = str1[i1];
for (int i2 = i; i2 < i + j; i2++)
L[i2] = str2[i2 - i];
L[i + j] = '\0';
return L;
}
int main()
{
//1.字串的連線
//建立記憶體空間
char* src1 = (char* )malloc(sizeof(char)*(100000));
char* src2 = (char*)malloc(sizeof(char)*(100000));
// 輸入字串
std::cin >> src1;
std::cin >> src2;
char* L1 = StrCat(src1, src2);
// 輸出連線後的字串
cout << L1 << endl;
//2.字串的複製
//建立記憶體空間
char* src = (char*)malloc(sizeof(char)*(100000));
// 輸入字串
std::cin >> src;
char* dst = StrCpy(src);
// 輸出複製後的字串
cout << dst << endl;
if (L1 != NULL)
delete L1;
system("pause");
return 0;
}