PhoenixZq
分享是一门艺术~~
/*
 * ReverseString.cpp
 *
 *  Created on: 2011-7-4
 *      Author: zq
 */
#include <iostream>
#include <string>
using namespace std;

void ReverseStrings(char* arr){
	for(int i=0,j = strlen(arr)-1;i<j;++i,--j){
		char ch = arr[i];
		arr[i] = arr[j];
		arr[j] = ch;
	}
}

void ReverseWords(char* arr){
	char* p = arr;
	int len = strlen(arr);
	int i = 0;
	cout << "len: " << len << endl;
	while(i<len){
		while(*p != '\0' && *p == ' '){
			p++;
			i++;
		}
		int j = i;
		while(*p != '\0' && *p != ' '){
			p++;
			i++;
		}

		for(int k = j,q = i-1;k<q;++k,--q){
			char ch = arr[k];
			arr[k] = arr[q];
			arr[q] = ch;
		}
	}
}

int main(){
	char arr[] = "wo shi yi ming gong chan dang yuan !";
	cout << "Before reverse arr: " << arr << endl;
	ReverseStrings(arr);//需要两次反转,第一步是整个句子的反转
	ReverseWords(arr);//第二步是单词的反转
	cout << "After reverse arr: " << arr << endl;

	return 0;
}
输出结果:
Before reverse arr: wo shi yi ming gong chan dang yuan !
len: 36
After reverse arr: ! yuan dang chan gong ming yi shi wo
posted on 2011-07-04 11:08  PhoenixZq  阅读(110)  评论(0)    收藏  举报