📄 string.cpp
字号:
#include <iostream.h>
#include <string.h>
/////////////////////////////////////
class str //STR类的定义
{
private:
char* content; //串中的内容
int length; //串的长度
public:
str(char* string='\0') //构造函数
{
content=new char[strlen(string)+1];
strncpy(content,string,strlen(string));
content[strlen(string)]='\0';
length=strlen(content);
}
~str() //析构函数
{
delete []content;
}
void display() //显示
{
cout<<"此字符串是:"<<endl;
cout<<content<<endl;
}
int get_length() //取长度
{
return length;
}
void connect(char* str_new); //连接
};
/////////类的实现///////////////////////////
void str::connect(char* str_new)
{ /*用strncpy()函数居然不对*/
char* temp;//临时存储空间
temp=new char[strlen(content)+1];
strcpy(temp,content);
/*strncpy(temp,content,length);*/
temp[strlen(content)]='\0';//将CONTENT复制到TEMP中
content=new char[length+strlen(str_new)+1];//给CONTENT重新分配够新串连接后的空间
strcpy(content,temp);//将TEMP付给CONTENT中,即将原来的CONTENT仍然放进去
/*strncpy(content,temp,length);*/
strcat(content,str_new);//连接
content[length+strlen(str_new)]='\0';
delete []temp;//删除临时空间
length+=strlen(str_new);
}
/////////////////////////////////////////
int main()
{
int len;
str s("kajfkasfjkakf");
s.display();
len=s.get_length();
cout<<"输入新字符串"<<endl;
char* s_new;//新串,连接到原串后的
s_new=new char[10];
cin>>s_new;
s.connect(s_new);
s.display();
delete []s_new;
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -