根据一个百度问答写的一个程序:特点是用指针实现。。
http://zhidao.baidu.com/question/485670365.html?sort=6&old=1&afterAnswer=1#reply-box-1218524351
#include "stdafx.h"
#include<iostream>
#include <cctype>
using namespace std;
#define MAXLEN 20
int reverseSentence(char** sentence, char ** newsentance, int maxWords)
{
int wcnt = 0;
int len = strlen(*sentence);
char words[MAXLEN];
char * p = words;
char * q = *newsentance + len;
char *r = *sentence;
*q = '\0';
q --;
while(1)
{
if(!isalpha(*r))
{
if(isalpha(*(r -1)))wcnt ++;
p --;
while(p >= words)
{
*q = *p;
q --;
p --;
}
if(*r)
{
*q = *r;
q --;
r ++;
p = words;
continue;
}
else break;
}
*p = *r;
p ++;
r ++;
}
return wcnt;
}
int main()
{
char *s = new char[100];
char *s2 = new char[100];
cout << "please input a sentence :" << endl;
cin.getline(s,100);
cout << "there are " << reverseSentence(&s,&s2,100) << " words in the sentence" << endl;
cout << s2 << endl;
system("pause");
return 0;
}