各位,请问一下字符倒置的有关问题(有关问题很简单,请大家不要笑小弟我)

各位大虾,请教一下字符倒置的问题(问题很简单,请大家不要笑我)
写一个小程序 
例如:welcome to beijing
把它该成 beijing to welcome
设计思想是什么


------解决方案--------------------
我的想法稍微复杂一些,给大家说来听听。

假设:
给定任意字符串之后,先把两端的空格去掉

方法:
两个字符下标指针
int end = strlen(string) - 1 ; // 指向本次要输出字符串的最后一个字符
int beg = end ; // 指向本次要输出字符串的第一个字符
当处理完一个字符串后,则令end=beg,又变回刚开始的那种状态
当beg == 0时,则说明已经到达字符串的开头了,则把本次的字符串输出完毕,程序结束!

程序如下:
C/C++ code

#include <iostream>
using namespace std ;

int main()
{
    int  i = 0 ;
    char a[] = "Hello      Beijing     Welcome" ;    // 要求:两端不能有空格,若有,应该先去掉

    int end = strlen(a)-1 ;                   // 此次要输出字符数组的末端
    int beg = end ;                       // 此次要输出字符数组的前端

    while (true)
    {
        -- beg ;
        
        if ( beg == 0 )            // 如果处理到a[0]时,则应该输出,并结束处理
        {
            for ( i=beg; i<=end; i++ )
                cout << *(a+i) ;

            system("pause") ;

            break ;
        }

        if ( *(a+beg) == ' ' )        // 如果遇到空格,则说明一个“字符串”已经找到
        {
            for ( i=beg+1; i<=end; i++ )    // 输出此“字符串”
                cout << *(a+i) ;

            cout << " " ;

            while ( true)        // 寻找下一个字符串的末端
            {
                if ( *(a+beg) != ' ' )
                    break ;

                beg -- ;
            }
            
            end = beg ;    // 令始端 = 末端,并继续进行处理
        }

    }

    return 0 ;
}

// 此程序在VC6.0下调试成功