|
안녕하세요??
오늘 부터 김백일 님이 추천해주신 Accelerated C++로 C++을 시작한 초보입니다.
하다보니 재미가 나네요...
그런데...설명을 보고 나서...다음과 같은 예제를 만들려고 하니 잘 안되네요...
제가 하고 싶은 것 : string을 입력 받은 후((ctrl+z)로 입력 끝), 입력 받은 문자열 중에서 제일 긴 문자열과 제일 짧은 문자열을 출력하고 싶습니다.
예) aaabbb aaa pppp
==> max string : aaabbb min string : aaa
제가 작성한 코드는 다음과 같은데요...
#include <vector>
#include <string>
#include <algorithm>
#include <iostream>
#include <ios>
#include <iomanip>
using std::cout;
using std::cin;
using std::vector;
using std::sort;
using std::endl;
using std::string;
int main(int argc, char* argv[])
{
cout << "input a string : ";
string x;
vector <string> str;
while(cin>>x) str.push_back(x);
typedef vector<string>::size_type sz;
sz size=str.size();
if (size==0) {
cout <<endl <<"input a string." <<endl;
return 1;
}
string *max=max_element(str.begin(),str.end());
string *min=min_element(str.begin(),str.end());
cout <<"Max String : " << *max << endl;
cout <<"Min String : " << *min << endl;
return 0;
}
이 예제를 실행하면
입력 : aaa b ccccc zz
결과 : Max string : zz
Min string : aaa
즉, ascii 코드 값 갖고 찾아주는 거 같네요...
제대로 된 결과인 Max String : ccccc Min String : b
이렇게 하려고 합니다.
c로 하면야 쉽지만 새로운 개념으로 접근하려고 하니 힘드네요...
아시는 분 손좀 봐주세요~~
|