C ++ 엔지니어 (역 이용) 넷째 매일 주제를 개발하는

주제 :

단어는 문장 부호가 거꾸로 아니라, 문장을 반전했다.

 

 이 질문은 () 함수에 의해 제공되는 역 알고리즘을 사용하기 쉬운 해결책이다

나는 코드 주석에 쓴 구체적인 단계 :

. (1) #INCLUDE < 문자열 >
 2 #INCLUDE <알고리즘>
 3.  INT 의 main () {
 4.      문자열 S]
 . 5      의 getline (CIN, S);       // 입력 공간에 포함 된 문자열이, 우리가 입력 CIN을 사용할 수있다 (공간이 발생할 것 정지), 문자 읽기 모두의 getline을 사용하여 (줄 바꿈은 EOF는 사용자 정의 기호) 정지 
6.      자동 IT s.begin = ();   // 신체 I 선택 순회 문자열 반복자 
. 7      역 (S. (가)) (시작, s.end ());     // 전체 문자열에 대한 단계 첫 세트를, 다음 각 단어이었다 역행 
. 8      그동안 (! IT는 = ) {s.end을 ()
 . 9          = 자동 II를 IT;
 10          그동안 (II s.end = () &&! = * II '  ' ) {    // 종료 워드의 위치를 찾을 
11.              II를 ++ ;
 12이다          }
 (13)이          역방향 (IT, II);                     // 역 전류 워드 카운터 
(14)          IF (II! = {S.end ())          
 15              IT는 II +는 = 1이다. ]                // 재 때문에 단지 '사이 워드, 워드 + 1의 시작 위치를 정의하는 
16              ++ II ]
 . 17          }
 18는          다른 {                          // 현재 위치가 그 최종 상태가 사이클의 끝에 직접 투여 마지막이면 
(19).              IT가 = s.end을 ( )
 (20)          }
 (21)      }
 (22)     << S COUT은;         // 출력 
(23)은      복귀  0 ,
 24 }

가장 중요한 점은 잘 알고 역 () 사용하는 것입니다

그러나 바로이 질문에 여전히 더 나은 솔루션은 또한 다른 거물급 여기에 공유에 모두 밖으로 마무리 후 쓰여있다 :

1 #INCLUDE <iostream>
 2  사용  스페이스 성병;
3 #INCLUDE < 문자열 >
 4  INT의 주 ()
 5  {
 6      문자열 (S1);
7 개      문자열 (S2);
8  
9      CIN >> S1;
10  
(11)      동안 (CIN >> S2 && getchar가 ()! = ' \ n ' )
 12      {
 13          S1 = S2 + "  " + S1;
14      }
 15  
16      COUT << S2 << " " << S1 << ENDL;
 17      반환  0 ,
 18 }

읽기 수단 후 정말 요리. . . .

추천

출처www.cnblogs.com/Kaniso-Vok/p/11832459.html