#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;
}