๐ฉ ํ์ค string ํด๋์ค
ํค๋ํ์ผ <string>์ ํฌํจํด์ผ ํ๋ค.
string ํด๋์ค๋ ํ์ค ํด๋์ค๋ก์จ ๋ฌธ์์ด์ ์ฒ๋ฆฌ๋ฅผ ์ํด ์ ๊ณต๋๋ ํด๋์ค
1. ๋ฌธ์์ด์ ์ธ์๋ก ์ ๋ฌ๋ฐ๋ ์์ฑ์์ ์ ์
string str1 = "I like "; ๐ string str1("I like ");
string str2 = "string class"; ๐ string str2("string class");
2. ์์ฑ์, ์๋ฉธ์, ๋ณต์ฌ ์์ฑ์, ๋์ ์ฐ์ฐ์์ ์ ์
์์ฑ์ ๋ด์์ ๋ฌธ์์ด ์ ์ฅ์ ์ํ ๋ฉ๋ชจ๋ฆฌ์ ๋์ ํ ๋น์ด ์ด๋ฃจ์ด์ง๋ฏ๋ก
3. ๊ฒฐํฉ๋ ๋ฌธ์์ด๋ก ์ด๊ธฐํ๋ ๊ฐ์ฒด๋ฅผ ๋ฐํํ๋ + ์ฐ์ฐ์์ ์ค๋ฒ๋ก๋ฉ
string str3 = str1 + str2;
str1 + str2์ ๋ฐํ๊ฐ์ผ๋ก ๋ ๊ฐ์ฒด์ ๋ฌธ์์ด์ ๋ชจ๋ ํฌํจํ๋ string ๊ฐ์ฒด๊ฐ ๋ฐํ๋๋๋ก
4. ๋ฌธ์์ด์ ๋ง๋ถ์ด๋ += ์ฐ์ฐ์์ ์ค๋ฒ๋ก๋ฉ
5. ๋ด์ฉ ๋น๊ต๋ฅผ ์งํํ๋ == ์ฐ์ฐ์์ ์ค๋ฒ๋ก๋ฉ
6. ์ฝ์ ์ ์ถ๋ ฅ์ ๊ฐ๋ฅํ๊ฒ ํ๋ <<, >> ์ฐ์ฐ์์ ์ค๋ฒ๋ก๋ฉ
๐ฉ string ํด๋์ค์ ์์ฑ
1. ํด๋์ค ์ ์ธ
class String{
private:
int len;
char * str;
public:
Stirng();
String(const char *s);
String(const String& s);
~String();
String& operator= (const String& s);
String& operator+= (const String& s);
bool operator== (const String& s);
String operator+ (const String &s);
friend ostream& operator<< (ostream& os, const String& s);
friend istream& operator>> (istream& is, String& s);
}
2. ๋ณต์ฌ ์์ฑ์, ๋์ ์ฐ์ฐ์
String::String(){
len = 0;
str = NULL;
}
// ์ด ์์ฑ์๋ ๋ค์์ ํํ๋ก ๊ฐ์ฒด ์์ฑ์ ๋๋๋ค. String emptystr;
String::String(const char* s){
len = strlen(s) + 1;
str = new char[len];
strcpy(str, s);
}
String::String(const String& s){
len = s.len;
str = new char[len];
strcpy(str, s.str);
}
String::~String(){
if(str != NULL)
delete []str;
}
String & String::operator= (const String& s){
if(str != NULL){
delete []str;
}
len = s.len;
str= new char[len];
strcpy(str, s.str);
return *this;
}
String& String::operator+= (const String& s){
len +=(s.len-1);
char* tempstr = new char[len];
strcpy(tempstr, str);
strcat(tempstr, s.str);
if(str != NULL){
delete []str;
}
str= tempstr;
return *this;
}
'๐ฉโ๐ป ํ๋ก๊ทธ๋๋ฐ > ๐ C++' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[C++] ํ ํ๋ฆฟ(Template) (0) | 2024.05.08 |
---|---|
[C++] ์ฐ์ฐ์ ์ค๋ฒ๋ก๋ฉ (0) | 2024.04.30 |
[C++] ๊ฐ์์ ์๋ฆฌ์ ๋ค์ค์์ (0) | 2024.04.29 |
[C++] ์์๊ณผ ๋คํ์ฑ | ๊ฐ์ํจ์(virtual function) | ์ฐธ์กฐ์ (1) | 2024.04.26 |
[C++] ์์ (0) | 2024.04.23 |