Think:
方法1:建立三个串, 2个串用来储存原始, 第三个串用来储存结果
方法2:建立两个穿, 连接后 将其中一个串进行释放
Problem Description
给定两个字符串string1和string2,将字符串string2连接在string1的后面,并将连接后的字符串输出。
连接后字符串长度不超过110。
Input
输入包含多组数据,每组测试数据包含两行,第一行代表string1,第二行代表string2。
Output
对于每组输入数据,对应输出连接后的字符串,每组输出占一行。
Example Input
123
654
abs
sfg
Example Output
123654
abssfg
#include<bits/stdc++.h>
using namespace std;
#define INF 0x3f3f3f
typedef struct
{
char *ch;
int length;
}String;
int initstring(String &S)//初始化
{
S.ch = (char *)malloc(INF * sizeof(char));
if (!S.ch) exit(0);
S.length = 0;
return 1;
}
void StrAssign(String &S, char str[])
{
int len = 0;
while(str[len ++] != '\0');
for (int i = 0;i <= len - 2;i ++)
{
S.ch[i] = str[i];
S.length ++;
}
}
void Concat(String &T,String &A, String &B)
{
int i;
int k = 0;
for (i = 0;i <= A.length - 1;i ++)
T.ch[k ++] = A.ch[i];
for (i = 0;i <= B.length - 1;i ++)
T.ch[k ++] = B.ch[i];
T.length = A.length + B.length;
}
void Display(String &T)
{
int i;
for (i = 0;i <= T.length - 1 ;i ++)
{
if (i == T.length - 1)
cout << T.ch[i] << endl;
else
cout << T.ch[i];
}
}
int main()
{
char str1[126], str2[126];
while(cin >> str1 >> str2)
{
String A;
String B;
String T;
initstring(A);
initstring(B);
initstring(T);
StrAssign(A, str1);
StrAssign(B, str2);
Concat(T, A , B);
Display(T);
}
}