#include<iostream.h> #include<string.h> class Anystring { private: int count; char str[30]; public: Anystring(); Anystring(const char*); ~Anystring(); void str_length(); //길이 측정 void str_reverse(); //문자열 뒤집기 void str_count_same_char(); //같은 문자를 찾기 void str_delete_white_space(); //빈칸 지우기 Anystring operator+(const Anystring &string1); //const; // +연산자 재정의해서 문자열 합치기 friend ostream& operator<<(ostream & os, const Anystring & a_string); // <<연산자 재정의해서 문자열 출력하기 }; Anystring::Anystring() { str[0]=''; } Anystring::Anystring(const char* tempstr) { strncpy(str, tempstr, 30); } Anystring::~Anystring() { } void Anystring::str_length() { count=0; while(str[count]!='') count++; cout<<"문자열의 길이는 "<<count<<"이다."<<endl; } void Anystring::str_reverse() { count=0; while(str[count]!='') count++; while(count!=0){ cout<<str[count-1]; count--; } } void Anystring::str_count_same_char() { count=0; char input_char; cout<<"검색할 문자를 쓰시오: "; cin>>input_char; cout<<input_char<<"n"; for(int i=0;i<30;i++){ if(str[i]==input_char) count++; } cout<<input_char<<"는 문자열 안에 "<<count<<"개 있다."<<endl; } void Anystring::str_delete_white_space() { count=0; while(str[count]!='') count++; for(int i=0;i<30;i++){ if(str[i]==' '){ for(int j=i;j<count;j++) str[j]=str[j+1]; } } cout<<str<<endl; } Anystring Anystring::operator+(const Anystring &string1) //const { count=0; while(str[count]!='') count++; Anystring temp_string; strncpy(temp_string.str, str, 30); int i=0; while(string1.str[i]!=''){ temp_string.str[count+i]=string1.str[i]; i++; } return temp_string; } ostream& operator<<(ostream& os, const Anystring & a_string) { os<<a_string.str<<endl; return os; } int main() { int input; Anystring string0("asdf asdf"); Anystring string1("qwer qwer"); Anystring temp_string; cout<<"==========String Of C++====================="<<endl; cout<<"1. 문자열 길이를 알아내는 기능"<<endl; cout<<"2. 문자열을 거꾸로 만들어 주는 기능"<<endl; cout<<"3. 찾고자 하는 문자의 갯수를 알려 주는 기능"<<endl; cout<<"4. 문자열에 있는 여백을 지워주는 기능"<<endl; cout<<"5. + 연산자를 재정의 하여 문자열을 합치기"<<endl; cout<<"6. <<연산자를 재정의하여 문자열 출력하기"<<endl; cout<<"============================================"<<endl; cout<<"사용할 메뉴의 번호는?(7을 누르면 종료): "; cin>>input; switch(input) { case 1: string0.str_length(); break; case 2: string0.str_reverse(); break; case 3: string0.str_count_same_char(); break; case 4: string0.str_delete_white_space(); break; case 5: temp_string=string0+string1; cout<<temp_string; break; case 6: cout<<string0; break; default: break; } cout<<"종료합니다.n"; return 0; }