|
本题添加时间:2023/4/3 12:59:00 |
|
圆梦客服:王老师 19139051760(微信同号) 19139051760(微信同号) |
(问答题) 答题步骤: 1.写出详细设计要求。 2.写出程序源代码。 3.把代码写入visual C++ 中,并编译,运行,截图出运行结果来。
定义一个字符串类CString,并设计一个算法实现,给定关键字str1在字符串str中出现时用关键字str2进行替换的功能。(本题10.0分)
|
答案是:标准答案: 一、详细设计
1、类的描述与定义
(1)私有数据成员
l char *str; 原始字符串。
l char *str1; 目标关键字。
l char *str2; 替换关键字。
l int flag; 标记替换是否完成替换。
(2)公有成员函数
l CString (char *s,char s1[ ],char *s2) :用给定的参数s、s1和s2相对应的初始化数据成员str、str1和str2。flag设置缺省0。
l void Replace () :判断str字符串中是否出现str1,若出现就用str2替换,否则什么都不做。若替换成功了标记flag为1,若替换不成功则标记flag为0。
l void Show( ) :若替换成功,则在屏幕上显示目标关键字、替换关键字和替换后的原始字符串;若不成功则显示原始字符串。
l ~ CString() :释放动态分配的空间。
2、主要函数设计
在主程序中定义字符串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{
private:
char*str;//原始字符串
char*str1;//目标字符串
char*str2;//替换关键字
int flag;
public:
CString(char*s,char s1[],char*s2)
{
str=new char[strlen(s)+strlen(s2)+strlen(s1)+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 Replace();
void Show();
~CString()
{ if(str) delete []str;
if(str1) delete []str1;
if(str2) delete []str2;
}
};
void CString::Replace()
{
int i=0;//i记录原始字符串str中第i位开始出现与目标关键字重合;
int k=0,count=0;
while(str[i])
{
while(str[i]!=str1[0]&&str[i]) i++;
if(i {
if(strncmp(str+i,str1,strlen(str1))==0)k=1;//利用strncmp(,)函数判断目标字符串是否出现于原始字符串,出现则k=1;
}
if(k)//若目标字符串出现,则进行替换;
{
char*turn=new char[strlen(str)+strlen(str1)+strlen(str2)+1];//临时数组指针,用于存放替换的字符串;
strncpy(turn,str,i);
turn[i]=0;
strcat(turn,str2);
strcat(turn,str+i+strlen(str1));
strcpy(str,turn);
delete []turn;
i=i+strlen(str2);
k=0;
count++;
}
}
if(count) flag=1;
}
void CString::Show()
{
if(flag) cout<<"目标关键字:"< else cout<<"原始字符串:"< }
void main()
{
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.Replace();
test.Show();
}
三、运行结果
上传图片
出自
东北林业大学-高级语言程序设计 青书学堂系统
东北林业大学
|
更多试题>>>>
1、词法分析的方法有( )。
A. 优先矩阵法
B.优先数法
C.状态矩阵法
D.递归子程序法
E.邻接表法
2、数据库管理中数据的独立性表现在 ( )。
A.物理独立性
B.逻辑独立性
C.操作独立性
D.维护独立性
E. 设计独立性
3、[多选题,6.5分] 小道消息的目标包括( )
A.建构和缓解焦虑
B.将支离破碎的信息说得完整
C.将群体成员或局外人组成一个整体
D.表明信息发送者的地位或权力
E.强化正式沟通效果
4、[多选题,5.5分] 创造性行为的特点包括( )
A.有用性
B.有效性
C.适应性
D.多变性
E.主动性
5、[多选题,5.5分] 人力资源管理研究的内容包括( )
A.行为规范
B.行为技巧
C.行为方法
D.行为标准
E.行为科学
|