c++程序设计的一个问题

来源:百度知道 编辑:UC知道 时间:2024/09/23 19:27:50
建立一个STRING,将一个字符串交叉插入另一个字符串中(假定两字符串不等长)。例如将字符串“abcde”交叉插入字符串“ABCDEFG”的结果为“aAbBcCdDeEFG”或“AaBbCcDdEeFG”。
具体要求如下:
(1)私有数据成员
1.char str1[60]:存放被插入的字符串。
2.char str2[40]:存放待插入的字符串。
3.char str3[100]:存放插入后的字符串。
(2)公有成员函数
1.STRING(char*s1,char*s2):构造函数,用s1和s2初始化str1和str2。
2.void process():将str2中的字符串插入到str1中,存放到str3中。
3.void print():输入插入后的字符串。
(3)在主程序中定义STRING类的对性test对该类进行测试。

#include <iostream.h>
#include <string.h>

class STRING{
private:
char str1[60],str2[40],str3[100];
unsigned int m,n;
public:
STRING(char *s1,char *s2)
{
m=strlen(s1),n=strlen(s2);
for(unsigned int i=0;i<m;i++)str1[i]=s1[i];
for(i=0;i<n;i++)str2[i]=s2[i];
}

void process()
{
unsigned int i=0,j=0,k=0;
while(i<m||j<n)
{
if(i<m&&j<n)
{
str3[k++]=str1[i++];
str3[k++]=str2[j++];
}
if(i<m&&j>=n)
str3[k++]=str1[i++];
if(i>=m&&j<n)
str3[k++]=str2[j++];
}
}

void print()
{
for(unsigned int i=0;i<m+n;i++)
cout<<str3[i];
cout<<endl;
}
};

int main()
{
char s1[]="ABCDEFG",s2[]="abcd";
STRING test1(s1,s2);
STRING test2(s2,s1);
test1.