//单词内部顺序不变,句子中单词的顺序翻转,标点同字符一样处理
#include<iostream>
using namespace std;
void convert( char *str , char *p1 , char *q1 ) {
char *p = p1;
char *q = q1;
while( p <= q ) {
char c = *p;
*p = *q;
*q = c;
p ++;
q --;
}
}
int main() {
char str[ 100 ];
char *former , *latter;
gets( str );
if( ( strlen( str ) == 0 ) ) {
return -1;
}
//对调整个字符串
convert( str , str , str + strlen( str ) - 1 );
former = str;
while( *former != '\0' ) {
//找到下一个不为空格的word的起点
while( ( *former != '\0' ) && ( *former == ' ' ) ) {
former ++;
}
//如果找到一个单词,而不是走到了字符串的末尾
if( *former != '\0' ) {
//找到former所指的单词的末尾字符
latter = former;
while( ( *latter != '\0' ) && ( *latter != ' ' ) ) {
latter ++;
}
latter --;
convert( str , former , latter );
former = latter + 1;
}
}
cout << str << endl;
return 0;
}