编写程序颠倒句子中单词的顺序

推荐http://bbs.csdn.net/topics/390173976

Enter a sentece: you can cage a swallow can't you? (下划线为用户输入的字符)

Reversal of sentence: you can't swallow a cage can you?

#include <iostream>
using namespace std;
#define M 10
#define N 20
void calc(){
	char* str = "you can cage a swallow can't you?";
	cout<<"input:"<<str<<endl;
	int len = strlen(str);//得到字符串的长度
	char res[M][N];//存储分割出来的单词
	int count = 0;
	int pos = 0;
	char last;
	for(int i=0;i<len;i++){
		res[count][pos++] = str[i];
		if(str[i]==' '){
			res[count][--pos] = '\0';//在字符串的后面补上'\0'表示字符串结束
			count++;
			pos=0;
		}
	}
	last = res[count][pos-1];
	res[count][pos-1] = '\0';
	cout<<"output:";
	for(i=count;i>0;i--){
		cout<<res[i]<<"  ";
	}
	cout<<res[0]<<last<<endl;
}
int main(){
	calc();
	return 0;
}


你可能感兴趣的:(算法)