주제 :
단어는 문장 부호가 거꾸로 아니라, 문장을 반전했다.
이 질문은 () 함수에 의해 제공되는 역 알고리즘을 사용하기 쉬운 해결책이다
나는 코드 주석에 쓴 구체적인 단계 :
. (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 }
읽기 수단 후 정말 요리. . . .