반응형
//*****************************************************************************
//   String  class 
//*****************************************************************************
// -  문자열을 다루는 타입 
// - char [] .  char * 
//*****************************************************************************
#include 
using namespace std;
// 문자열을 추상화한 클래스 !! 
class String 
{
private : 
	char * m_buf; // 문자열 데이타 저장소 
	  int  m_len;  //문자열 길이  
public : 
	String() 
	{
		m_buf = NULL; 
		m_len = 0; 
	}
	String( const char * str )  // "홍길동" 
	{
		m_len = strlen( str); 
		// 문자열 길이 만큼의 공간확보 !! 
		m_buf =  new char[m_len+1];  
		strcpy( m_buf, str); 
	}
	String ( const String & str) 
	{
		this->m_len = str.m_len; 
		this->m_buf = new char[m_len+1]; 
		strcpy( m_buf , str.m_buf); 
	}
	// 문자열 연산들... !!
	//	strlen()
	int getLength(){ return m_len; }
//	strcmp()
	bool compare( const char * str )
	{		
		if( m_len != strlen(str)) 
			return false; 

		for(int i = 0; i< m_len; i++) 
		{
			if( m_buf[i] != str[i]) 
				return false;
		}
		return true; 
	}
	bool compare( const String & str  )
	{
		return compare( str.m_buf);
	}
//	strcat() 
	String &  Concat( const char * str ) 
	{
		char * temp =  new char[m_len + strlen(str)+ 1]; 
		memset(temp,  0,  m_len + strlen(str)+ 1); 
		for(int i = 0; i

'C, C++' 카테고리의 다른 글

[C++] 템플릿  (0) 2014.11.18
[C++] 동적 배열 클래스  (0) 2014.11.18
[C++] () 연산자 오버로딩 !!  (0) 2014.11.18
[C++] 전역 함수를 이용한 연산자 오버로딩  (0) 2014.11.18
[C++] 연산자 오버로딩  (0) 2014.11.18

+ Recent posts