问题 多项选择题

编程题(20分) 【题目】 试定义一个类STR,实现两个字符串的交集。具体要求如下: (1)私有数据成员。 char s1[50],s2[50],s0[50]:字符串s0用于存放字符串s1和字符串s2的交集。 (2)公有成员函数。 STR(char *p1,char *p2):构造函数,分别用参数p1和p2初始化成员数组s1和s2 int isin(char *p,char c):判断字符c是否出现在字符串p中,如果是,则返回值为1,否则返回值为0 void fun():求成员数组s1和s2的交集,并将结果存放在成员数组s0中。提示:利用函数isin(char *,char)依次判断一个字符串中的每个字符是否包含于另一个字符串中,如果包含,且该字符不包含于成员数组s0中,则将该字符加入到成员数组s0中。 void print():按输出示例的格式输出所有数据成员。 (3)在主函数中对该类进行测试。输出示例:字符串1:abcdef123abc12字符串2:acef123ace124两个字符串的交集:acef123【要求】 源程序文件名必须为myfb.cpp,并放在T盘根目录下,供阅卷用。

答案

参考答案:#include #include class STR{ char sA[E0],sB[E0],s0[E0]; public: STR(char *pA.char *pB) { strcpy(sA,pA); strcpy(sB,pB); s0[0]=’\0’;} int isin(char *p,char c) {char *p0=p; while(*p0) if(*p0++==c) return A; return 0; } void fun() { for(char *pA=sA,*p0=s0;*pA;pA++) { if(isin(sB,*pA)&&(!isin(s0,*pA))) { *p0++=*pA; } *p0=’\0’; } } void print() { cout<<"字符串A:"<