您的位置:首页 > 编程语言 > C语言/C++

c++ stl学习 传统C字符串用法

2013-11-23 21:24 495 查看
#include "stdafx.h"
#include <cstring>
#include <iostream>

using std::cout;
using std::endl;

class JString{
public:
JString(const char* pszContent);
JString(const JString& oString);
JString& operator = (const JString& oString);
~JString(){
if(m_pszContent != 0){
delete[] m_pszContent;
}
}
void Output() const;

private:
char* m_pszContent;
};

void JString::Output() const{
cout << m_pszContent;
}

JString::JString(const char* pszContent):m_pszContent(0){
int nLen = strlen(pszContent);
if(nLen > 0){
m_pszContent = new char[nLen + 1];
strcpy(m_pszContent, pszContent);
}
}

JString::JString(const JString& oString):m_pszContent(0){
int nLen = strlen(oString.m_pszContent);
if(nLen > 0){
m_pszContent = new char[nLen + 1];
strcpy(m_pszContent, oString.m_pszContent);
}
}

JString& JString:: operator = (const JString& oString){
m_pszContent = 0;
int nLen = strlen(oString.m_pszContent);
if(nLen > 0){
m_pszContent = new char[nLen + 1];
strcpy(m_pszContent, oString.m_pszContent);
}

return *this;
}

int _tmain(int argc, _TCHAR* argv[])
{
//常见的char使用方式1,使用数组
char szWebSite[20];
strcpy(szWebSite, "www.jiesoon.com");
cout << szWebSite << endl;

//使用方式2,使用动态内存
char *pszWebSite = new char[20];
strcpy(pszWebSite, "www.jiesoon.com");
cout << pszWebSite << endl;
delete[] pszWebSite;

//使用方式3,使用自定义类
JString oString("www.jiesoon.com");
oString.Output();

getchar();
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: