题目链接:点击打开链接
串结构练习——字符串连接
Time Limit: 1000MS Memory limit: 65536K
题目描述
给定两个字符串string1和string2,将字符串string2连接在string1的后面,并将连接后的字符串输出。
连接后字符串长度不超过110。
输入
输入包含多组数据,每组测试数据包含两行,第一行代表string1,第二行代表string2。
输出
对于每组输入数据,对应输出连接后的字符串,每组输出占一行。
示例输入
123 654 abs sfg
示例输出
123654 abssfg
提示
代码实现:
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
using namespace std;
#define maxsize 300
typedef struct
{
char *ch;
int length;
int stringsize;
}Sqstring;
int initString(Sqstring &S)
{
S.ch = (char *)malloc(maxsize *sizeof(char));
///S.ch = new char[maxsize];
if(!S.ch)
return -1;
S.length = 0;
S.stringsize = maxsize;
return 0;
}
void Creat(Sqstring &S, char str[])
{
int len = strlen(str);
for(int i = 0;i < len;i++)
{
S.ch[i] = str[i];
S.length++;
}
}
///将S1,S2连接赋到T中
void concat(Sqstring &T,Sqstring &S1,Sqstring &S2)
{
int k = 0;
for(int i = 0; i < S1.length; i++)
{
T.ch[k++] = S1.ch[i];
}
for(int i = 0; i < S2.length; i++)
{
T.ch[k++] = S2.ch[i];
}
T.length = S1.length + S2.length;
}
void show(Sqstring &T)
{
for(int i = 0; i < T.length; i++)
{
printf("%c",T.ch[i]);
}
printf("\n");
}
int main()
{
char str1[110],str2[110];
Sqstring T,S1,S2;
while(~scanf("%s%s",str1,str2))
{
initString(S1);
initString(S2);
Creat(S1,str1);
Creat(S2,str2);
initString(T);
concat(T,S1,S2);
show(T);
}
return 0;
}