1062 Text Reverse

目錄

Language: C++

Analysis


 

Language: C++

#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <string.h>
using namespace std;


int main() {
	char str[1001];
	int case_num;
	cin >> case_num;
	getchar();
	while (case_num--) {
		cin.getline(str, 1000);
		int len = strlen(str);
		int i = 0, j = 0;
		char tmp;

                /* 注意這裏有等於,處理'\0'的情況 */
		while (j <= len) { 

                        /* 遇到子串結尾 */
			if (str[j] == ' ' || str[j ] == '\0') {

                                /* 字符串反轉 */
				int a = i, b = j - 1;
				while (a < b) {
					tmp = str[a];
					str[a] = str[b];
					str[b] = tmp;
					a++;
					b--;
				}
                                
                                /* 子串指針頭移至下一節 */
				i = j + 1;
			}

                        /* 子串指針尾後移 */
			j++;
		}
		cout << str << endl;
	}
	return 0;
} 

 

Analysis

  •  遇到輸入字符串包含空格,想到用cin.getline,前面就要配一個getchar;
  •  整體上看就是字符串反轉算法的應用,類似的題直接想到要用兩個指針:頭指針、尾指針

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章