100分,求完整的string类

mumolangzi 2004-06-19 10:08:33
随便什么都行,只要是完整的string就行了
...全文
68 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
CsdnRob 2004-07-02
  • 打赏
  • 举报
回复
屏蔽CTRL+ALT+DEL 有时我们不希望程序被用户用Alt+Tab、Ctrl+Alt+Del、Ctrl+Esc等系统功能键打断(比如自动演示程序),那么该怎么做呢?提示你一点,在运行屏幕保护程序的时候,这些功能键都是不起作用的--也就是说,只要在你的程序运行过程中,“欺骗”一下Windows,使它自以为正处在屏幕保护状态就成了!请看下面这段代码:   var   temp : integer;   begin    SystemParametersInfo( SPI_SCREENSAVERRUNNING, 1, @temp, 0);   end;   当然,在程序结尾处千万别忘了恢复设置,把Windows“唤醒”。代码如下:   var   temp : integer;   begin    SystemParametersInfo( SPI_SCREENSAVERRUNNING, 0, @temp, 0);   end;
mumolangzi 2004-06-19
  • 打赏
  • 举报
回复
好的谢谢
qrcnu 2004-06-19
  • 打赏
  • 举报
回复
包括一些重载的+(并集) -(差集)
重载的输入<<运算符,赋值运算符
及重载的比较运算符
都是一些最基本的应用了。
qrcnu 2004-06-19
  • 打赏
  • 举报
回复
一个比较简单的string类

string的头文件string.h

及cpp文件 string.cpp
hcj2002 2004-06-19
  • 打赏
  • 举报
回复
up
mumolangzi 2004-06-19
  • 打赏
  • 举报
回复
能告诉我这一段程序是干什么的吗?
qrcnu 2004-06-19
  • 打赏
  • 举报
回复
string.h

#include<iostream>
using std::cout;
using std::ostream;
class string // simple string class
{

int length; // length of string
char *contents; // pointer to contents of string
void copy(const string&);
public:
friend ostream& operator <<(ostream& output,const string &str);
friend string& operator +(const string& str,const char chars[]);
friend string& operator +(const char chars[],const string& str);
string(const string&);
string& operator =(const string& str);
// Get length of string
// return: the length of string
int get_length() const { return length; }
// Get contents of string
// return: the pointer to contents of string
char* get_contents() const{ return contents; }
// Constructor
string() { contents=0; length=0; }
// destructor
~string() { delete []contents; }
// To set and modify contents of the string
// parameters: in_length - length of string set
// in_contents - contents of string set
// return: the length of string set
int set_contents(int in_length, char *in_contents);
// The overloaded of the above function
// parameters: in_contents - contents of string set
// return: the length of string set
int set_contents(char* in_contents);
// Show the contents of string
void print() const{ cout << contents; }

string& operator +(const string& str);
bool operator==(const string& str);
bool operator!=(const string& str);
bool operator>=(const string& str);
bool operator>(const string& str);
bool operator<(const string& str);
bool operator<=(const string& str);
};
---------------------------------------------------------------------
string.cpp

#include "string.h"


ostream& operator<<(ostream& output,const string& str)
{
str.print();
return output;
}
string::string(const string& str)
{
if(str.get_contents()!=0)
{
copy(str);
length=str.get_length();
}
else
{
contents=0;
length=0;
}
}

string& string::operator = (const string& str)
{
if(contents!=str.get_contents())
{
delete[]contents;
copy(str);
length=str.get_length();

}
return (*this);
}

string& operator+(const char chars[],const string& str)
{
static string temp;
int length;
length=str.get_length()+strlen(chars);
char *cp=new char[length+1];
if(chars!=0)
strcpy(cp,chars);
if(str.get_contents()!=0)
strcat(cp,str.get_contents());
temp.set_contents(cp);
delete[]cp;
return temp;
}
string& operator+(const string& str,const char chars[])
{
static string temp;
int length;
length=str.get_length()+strlen(chars);
char *cp=new char[length+1];
if(str.get_contents()!=0)
strcpy(cp,str.contents);
if(chars!=0)
strcat(cp,chars);
temp.set_contents(cp);
delete[]cp;
return temp;
}

// --------------------- Member Functions of string -----------------------
// parameters: in_length - length of string set
// in_contents - contents of string set
// return: the length of string set
int string::set_contents(int in_length, char *in_contents)
{
length = in_length;
if(contents)
delete []contents; // Delete string if the string is not null
contents = new char[length + 1];
strcpy(contents, in_contents);
return length;
}
// parameters: in_contents - contents of string set
// return: the length of string set
int string::set_contents(char *in_contents)
{
length = strlen(in_contents);
if(contents)
delete []contents; // Delete string if the string is not null
contents = new char[length + 1];
strcpy(contents, in_contents);
return length;
}
string& string:: operator + (const string& str)
{
static string temp;
int length;
length=str.get_length()+strlen(contents);
char *cp=new char[length+1];
if(contents!=0)
strcpy(cp,contents);
if(str.get_contents()!=0)
strcat(cp,str.get_contents());
temp.set_contents(cp);
delete[]cp;
return temp;
}
void string::copy(const string& str)
{
contents=new char[str.get_length()+1];
strcpy(contents,str.get_contents());
}
bool string::operator !=(const string& str)
{
if(strcmp(contents,str.get_contents()))
return true;
else
return false;
}
bool string::operator ==(const string& str)
{
if(strcmp(contents,str.get_contents()))
return false;
else
return true;
}
bool string::operator <(const string& str)
{
if(strcmp(contents,str.get_contents())<0)
return true;
else
return false;
}
bool string::operator <= (const string& str)
{
if(strcmp(contents,str.get_contents())<=0)
return true;
else
return false;
}
bool string::operator >(const string& str)
{
if(strcmp(contents,str.get_contents())>0)
return true;
else
return false;
}
bool string::operator >=(const string& str)
{
if(strcmp(contents,str.get_contents())>=0)
return true;
else
return false;
}

64,654

社区成员

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

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