반응형
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | //***************************************************************************** // String class //***************************************************************************** // - 문자열을 다루는 타입 // - char [] . char * //***************************************************************************** #include <iostream> 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<m_len; i++)= "" temp[i]= "m_buf[i];" for (int= "" i= "0;" i<= "" strlen(str);= "" temp[i+m_len]= "str[i];" delete = "" []= "" m_buf;= "" m_buf= "temp;" m_len= "strlen(m_buf);" return = "" (* this );= "" }= "" 연산자= "" 오버로딩= "" !!= "" == "!=" += "//" ~string()= "" {= "" friend= "" ostream= "" &= "" operator<<(ostream= "" os,= "" string= "" str);= "" };= "" str)= "" os= "" <<= "" str.m_buf= "" endl;= "" os;= "" void= "" main()= "" str1( "hello" );= "" str2(= "" str1= "" );= "" if (= "" str1.compare(= "" "hell" ))= "" cout= "" "같다" = "" str1.concat(= "" "aaa" );= "" <= "" pre= "" ></m_len;></iostream> |
'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 |