这题题怎么做,请高手帮个忙。

zzm5188 2004-06-22 04:34:42
定义一个字符串类string,使其至少具有内容(contents)和长度(length)两个数据成员,并具有显示字符串、求字符串长度、给原字符串后添加一个字符串等功能。

这道题我想了好久,就是不知从哪入手。
...全文
145 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
goodname 2004-06-29
  • 打赏
  • 举报
回复
下面的方法效率很低,仅仅供你参考。


#include <stdio.h>
#include <string.h>
//#include <assert.h>// for assert()


class string{
private:
char *p;//指向字符串
int length;//字符串的长度
public:
string(char *pp=NULL);
~string();
void print();
int size();
string& add(char *pp);
string& add(const string& str);//重载
};

//构造函数
string::string(char *pp)
{
if(pp != NULL){
length=strlen(pp);
p=new char[length+1];//多出的一个字节存放字符串结束标志'\0'
strcpy(p,pp);
}
else{
//p=new char[16];
}

}
//析构函数
string::~string()
{
delete[] p;
}
//打印
void string::print()
{
printf("%s",p);
}

//得到长度
int string::size()
{
return length;
}

//加字符串
string& string::add(char *pp)
{
char *tmp;
length=length+strlen(pp);
tmp=new char[length+1];
strcpy(tmp,p);
strcat(tmp,pp);
p=tmp;

return *this;
}
//加字符串
string& string::add(const string& str)
{
char *tmp;
length=length+str.length;
tmp=new char[length+1];
strcpy(tmp,p);
strcat(tmp,str.p);
p=tmp;

return *this;
}

int main()
{
string str("111\n");
//str.print();
str.add("222\n");
//str.print();
str.add("333\n").add("444\n");
//str.print();
string str1("111\n");
string str2("222\n");
str1.add(str2);
str1.print();
}
pl85413 2004-06-23
  • 打赏
  • 举报
回复
dsg
Hillside 2004-06-23
  • 打赏
  • 举报
回复
这样的设计,就是菜鸟级的,也不要去找源代码。这是最最基本的东西,不要任何参考,自己写出来,才能有真正的进步。东拼西凑是不会提高水平的。不会写,去看教程。
zzm5188 2004-06-22
  • 打赏
  • 举报
回复
谁说我没想,只是算法不一样, 但是“求字符串长度、给原字符串后添加一个字符串等功能”不知如何算。


class sring {

char contents;

int length;

public:

void show( )

{ cout < < contents :}

int getlong( )

{ return length;}

};
darkstar21cn 2004-06-22
  • 打赏
  • 举报
回复
只有下手了,才知道从哪入手
不作你将还是不会
kaphoon 2004-06-22
  • 打赏
  • 举报
回复
楼主真的想了
我不信
楼主知道有strlen()这种函数吗?
不知道
http://www.ggv.com.cn/forum/clib/string/strtok.html
oldjackyone 2004-06-22
  • 打赏
  • 举报
回复
这类问题,可以自己思考一下的....都是简单的东西.
njtu 2004-06-22
  • 打赏
  • 举报
回复
书上有源代码,具体那本记不清楚了,
c++ programming language
c++ primer
之类的应该有.

东西挺多的
goodname 2004-06-22
  • 打赏
  • 举报
回复
class string{
private:
char *p;//指向字符串
int length;//长度
public:
void print();
int getlength();
string& connect(const string& str);
};

接口声明,剩下的实现吧。

64,646

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧