VC 课程实践正确答案(1) 联系客服

发布时间 : 星期四 文章VC 课程实践正确答案(1)更新完毕开始阅读5c529c5258f5f61fb6366648

void count(); void show(); ~cstring(); };

cstring::cstring(char*s) { p=0; size=0; str=s; }

void cstring::count() { p=new char[strlen(str)][2]; char n; char *p1,*p2; for(int i=0;str[i];i++) { n='\\0'; p1=&str[i]; for(int m=0;str[m];m++) { p2=&str[m]; if(*p1==*p2)n++; p2++; } p[i][0]=str[i]; p[i][1]=n; } }

void cstring::show() { for(int i=0;i

}

cstring::~cstring() { delete []p; }

void main() { char s[]=\ cstring test(s); test.count(); test.show(); }

运行结果

10.定义一个字符串类CString,并设计一个算法实现,给定关键字str1在字符串str中出现时用关键字str2进行替换的功能。 具体要求如下:

(1)私有数据成员

? char *str; 原始字符串。 ? char *str1; 目标关键字。 ? char *str2; 替换关键字。

? int flag; 标记替换是否完成替换。 (2)公有成员函数

? CString (char *s,char s1[ ],char *s2) :用给定的参数s、s1和s2相对应的初始化数据成员str、str1和str2。flag设置缺省0。

? void Replace () :判断str字符串中是否出现str1,若出现就用str2替换,否则什么都不做。若替换成功了标记flag为1,若替换不成功则标记flag为0。

? void Show( ) :若替换成功,则在屏幕上显示目标关键字、替换关键字和替换后的原始字符串;若不成功则显示原始字符串。 ? ~ CString() :释放动态分配的空间。

(3) 在主程序中定义字符串char s[]=”I am student, you are student too, we are all student.”作为原始字符串,定义char s1[]=” student”作为目标关键字,定义char s2[]=”teacher”作为替换关键字。定义一个CString类对象test,用s,s1和s2初始化test,完成对该类的测试。

程序源代码

#include #include class cstring{ char *str; char *str1; char *str2; int flag; public: cstring(char*s,char s1[],char *s2); void replace(); void show(); ~cstring(); };

cstring::cstring(char*s,char s1[],char *s2) { str=new char[strlen(s)+1]; str1=new char[strlen(s1)+1]; str2=new char[strlen(s2)+1]; strcpy(str,s); strcpy(str1,s1); strcpy(str2,s2); flag=0; }

void cstring::replace() { int i,n1,n2,y=1; for(i=0;str[i];i++) { if(str[i]==str1[0]) { for(n1=i,n2=0;str1[n2];n1++,n2++) if((str[n1]!=str1[n2])||(str[n1]=='\\0')) { y=0; break; } if(y==1) { char pp[100]; for(int x=0,p=i;x<(strlen(str1));p++,x++) { str[p]=str2[x]; } flag=1;

} } } }

void cstring::show() {

if(flag==1) cout<<\改后\else cout<<\未改\}

cstring::~cstring() { delete []str; delete []str1; delete []str2; }

void main() { char s[]=\ char s1[]=\ char s2[]=\ cstring test(s,s1,s2); test.replace(); test.show(); }

运行结果

11.建立一个STRING,将一个字符串交叉插入到另一个字符串中(假定两字符串等长)。例如将字符串“abcde” 交叉插入字符串“ABCDE”的结果为“aAbBcCdDeE”或“AaBbCcDdEe”。 具体要求如下: (1)私有数据成员

? char str1[80] :存放被插入的字符串。 ? char str2[40] :存放待插入的字符串。 (2)公有成员函数

? STRING (char *s1, char *s2 ):构造函数,用s1和s2初始化str1和str2。 ? void process():将str2中的字符串插入到str1中。 ? void print():输出插入后的字符串。