您的位置:首页 > 其它

实现一个字符串类,可以比较和连接两个字符串

2016-04-13 20:04 465 查看
¥¥这是我写的第一个实际意义上的c++程序,很简单,但是第一次写的时候半夜坐在电脑前急哭了…不过好在这个程序让我收获了很多,也终于有点明白了c和c++的区别、明白了this的用法。也希望这个小程序能帮到一些初学c++的孩子¥¥

#include <stdio.h>
#include <string.h>

using namespace std;

class String{
private:
char *s;
int len;
public:
String(){
this->s = new char[10000];         //this均可省去
this->len = 0;
}
String(char *ss){
this->len = strlen(ss);
this->s = new char(strlen(ss) + 1);
for(int i = 0; i < this->len; i++)
s[i] = ss[i];
s[strlen(ss)] = '\0';
}
String(String &ss){
s = new char(ss.len + 1);
this->len = ss.len;
for(int i = 0; i < this->len; i++)
s[i] = ss.s[i];
s[ss.len + 1] = '\0';
}
~String(){
delete []s;
s = NULL;
}
void cmp(char *ss) const{
int length = strlen(ss);
int tab = 1;
if(this->len == length){
for(int i = 0; i < length; i++){
if(ss[i] == s[i])
continue;
else{
tab = 0;
printf("两字符串不相等\n");
break;
}
}
if(tab)
printf("两字符串相等\n");
}
else printf("两字符串不相等\n");
}
void cnt(String &ss){
for(int i = 0; i < this->len; i++){
ss.s[ss.len] = s[i];
ss.len++;
}
}
char *gets(){
return this->s;
}
int getlen(){
return this->len;
}
};
int main()
{
char a[100], b[100];
scanf("%s", a);
scanf("%s", b);
String s1(a);
s1.cmp(b);

String s2(b);
String s3;
s1.cnt(s3);
s2.cnt(s3);
char *p;
p = s3.gets();
printf("连接好的字符串为:");
for(int i = 0; i < s3.getlen(); i++){
printf("%c ", *p);
p++;
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: