程序编程题 【题目】字符串的并集定义为两个字符串中所包含的所有字符(并集中字符的排列顺序不做要求,但不能重复)。试定义一个字符串类STR,求两个字符串的并集。具体要求如下: (1)私有数据成员 charp1,p2;存放两个原始字符串。 charp

admin2019-04-04  47

问题 程序编程题
【题目】字符串的并集定义为两个字符串中所包含的所有字符(并集中字符的排列顺序不做要求,但不能重复)。试定义一个字符串类STR,求两个字符串的并集。具体要求如下:
(1)私有数据成员
charp1,p2;存放两个原始字符串。
charp;存放两个字符串的并集。
(2)公有成员函数
STR(chars1[],chars2[]);初始化原始字符串并为指针p分配存储空间。
voiddel(charp);删除p指向字符串中的重复字符。
voidfun();求指针p1和p2所指向的两个字符串的并集,结果存入指针p所指向的存储空间,注意调用del()函数删除结果中的重复字符。
voidprint();输出两个原始字符串及它们的并集。
~STR();析构函数,释放动态内存。
(3)在主函数中对该类进行测试。输出示例:
原字符串:adb12345 abcdefg23        xz
它们的并集为:adb12345cefgxz
【要求】

源程序文件名必须为myfccpp,并放在T盘根目录下,供阅卷用。

选项

答案#include #include // classSTR{ charp1,p2,p; / public: STR(chars1[],chars2[]) //3分 { intn1=strlen(s1) +1,n2=strlen(s2) +1;strcpy(p1=newchar[n1],s1); strcpy(p2=newchar[n2], s2); p=newchar[n1+n2+1]; } voidfun() // { chars=p1,p0=p;while(p0++=s++); s=p2; p0--; while(p0++=s++); del(p); } voiddel(chars) // { while((s+1)){ for(chars1=s+1;s1;s1++) if(s==s1){ s1=’\0’; strcat(s,s1+1); s1--; } s++; } } voidprint() // { cout<<"原字符串:"; cout<
解析
转载请注明原文地址:https://kaotiyun.com/show/dbhZ777K
0

最新回复(0)