저두 요즘 c++ 공부하고 있음다 며칠전 읽은 string 반복자를 이용해서 한번 해봤어여
#include <conio.h>
#include <iostream.h>
#include <condefs.h>
#pragma hdrstop
//---------------------------------------------------------------------------
#pragma argsused
string str="I Love You.";
string::iterator p;
string::iterator start;
string::iterator end;
// string의 반복자를 선언한다.
// p 는 str의 포인터.
// start 는 한 단어의 시작 포인터.
// end 는 한 단어의 끝 포인터.
bool display();
bool display()
{
do{
cout << *end;
}while(end-- != start);
//end 부터 start 까지 역으로 출력.
if(p == str.end()) return false;
// 문장이 끝나면 false 리턴.
cout << " "; // 공백 표시.
start = end = p; // 다음 단어 start,end 포인터로 옯김.
return true; // 문장이 께속 되면 true 리턴.
}
int main(int argc, char* argv[])
{
p = str.begin(); //str 의 시작 주소.
start = end = p; //start,end 에 대입.
while(1)
{
if(*p == ' ' || p == str.end())
// 한단어가 끝나거나 문장이 끝나면...
{
if(!display()) break; // 디스플레이. 문장이 끝나면 루프 끝.
p++; // 다음 단어 시작포인트.
}
else
{
end = p; // 단어의 끝 포인터 증가.
p++; // p 증가
}
}
getch();
return 0;
}
[제컴에서 실행한 결과]
I evoL .uoY
|