给我的C++程序加一个主函数,再帮我把我整个的程序注释一下。急!!!

1)基本要求:(1)建立字符串类(2)利用运算符重载的概念实现串赋值(=)、串比较(==、!=、<、>)、串连接(+)运算;(3)实现字符串的常用操作:求串长、串插入、串... 1)基本要求:
(1)建立字符串类
(2)利用运算符重载的概念实现串赋值(=)、串比较(==、!=、<、>)、串连接(+)运算;
(3)实现字符串的常用操作:求串长、串插入、串删除、求子串,串匹配。
#include <iostream.h>
#include <string>

class String {
char *h , *t ;
public:
String () {}
String (const String & b) {
int len = b.t - b.h ;
h = new char[len] ;
t = h + len ;
memcpy(h , b.h , sizeof(char)*len) ;
}
String (const char *s) {
int len = strlen(s) ;
h = new char[len] ;
t = h + len ;
memcpy(h , s , sizeof(char)*len) ;
}
~String () {
delete h ;
}
String & operator= (const char *s) {
int len = strlen(s) ;
delete h ;
h = new char[len] ;
t = h + len ;
memcpy(h , s , sizeof(char)*len) ;
}
String & operator= (const String & b) {
int len = b.t - b.h ;
delete h ;
h = new char[len] ;
t = h + len ;
memcpy(h , b.h , sizeof(char)*len) ;
}
bool operator< (const String & b) const {
int len = (size() < b.size()) ? size() : b.size() ;
for(int i = 0 ; i < len ; i++) {
if(*(h + i) != *(b.h + i)) return *(h + i) < *(b.h + i) ;
}
return size() < b.size() ;
}
bool operator== (const String & b) const {
int len = (size() < b.size()) ? size() : b.size() ;
for(int i = 0 ; i < len ; i++) {
if(*(h + i) != *(b.h + i)) return false ;
}
return size() == b.size() ;
}
bool operator> (const String & b) const {
return b < *this ;
}
bool operator!= (const String & b) const {
return !(*this == b) ;
}
int size() const {
return t - h ;
}
int length() const {
return t - h ;
}
} ;
void main(){
return 0 ;
}
展开
 我来答
china_ludawei
2011-06-21
知道答主
回答量:38
采纳率:0%
帮助的人:21.4万
展开全部
#include <iostream> //因为报错,修改了一下
#include <string>
using namespace std; //用cout来输出,方便~~

class String {
char *h , *t ;
public:
String () {} //构造方法的重载方法1
String (const String & b) { //构造方法的重载方法2
int len = b.t - b.h ;
h = new char[len] ;
t = h + len ;
memcpy(h , b.h , sizeof(char)*len) ;
}
String (const char *s) { //构造方法的重载方法3
int len = strlen(s) ;
h = new char[len] ;
t = h + len ;
memcpy(h , s , sizeof(char)*len) ;
}
~String () { //析构函数
delete h ;
}
String & operator= (const char *s) { //操作符 = 的重载方法1
int len = strlen(s) ;
//delete h ; //这句话不用要
h = new char[len] ;
t = h + len ;
memcpy(h , s , sizeof(char)*len) ;
return (String)h; //这里加上return
}
String & operator= (const String & b) { //操作符 = 的重载方法2
int len = b.t - b.h ;
delete h ;
h = new char[len] ;
t = h + len ;
memcpy(h , b.h , sizeof(char)*len) ;
return (String)h; //这里加上return
}
bool operator< (const String & b) const { //操作符 < 的重载方法
int len = (size() < b.size()) ? size() : b.size() ;
for(int i = 0 ; i < len ; i++) {
if(*(h + i) != *(b.h + i)) return *(h + i) < *(b.h + i) ;
}
return size() < b.size() ;
}
bool operator== (const String & b) const { //操作符 == 的重载方法
int len = (size() < b.size()) ? size() : b.size() ;
for(int i = 0 ; i < len ; i++) {
if(*(h + i) != *(b.h + i)) return false ;
}
return size() == b.size() ;
}
bool operator> (const String & b) const { //操作符 > 的重载方法
return b < *this ;
}
bool operator!= (const String & b) const { //操作符 != 的重载方法
return !(*this == b) ;
}
int size() const { //求字符串长度函数
return t - h ;
}
int length() const { //求字符串长度函数
return t - h ;
}
} ;

int main()
{
String s1,s2;
s1 = "11111";
s2 = "22222";
if(s1>"0") cout<<"s1>0"<<endl;
if(s1<s2) cout<<"s1<s2"<<endl;
if(s1=="11111") cout<<"s1==11111"<<endl;
if(s1!=s2) cout<<"s1!=s2"<<endl;

cout<<s1.length()<<endl;
cout<<s2.size()<<endl;

return 0;
}
追问
我把程序又改了一下,能用啦,可是,你能把程序注释的更好一些吗,我这是要交课程设计的。。。
追答
这个我加不了,自己加吧,给函数加功能说明,参数说明,还有返回值说明就差不多了。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式