1. 程式人生 > >字串的複製與連線

字串的複製與連線

#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; }