π©π» νλ‘κ·Έλλ°/π C++
[C++] String ν΄λμ€ λμμΈ
peewoong
2024. 5. 6. 15:57
π© νμ€ 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;
}