#include "stdafx.h" #include <iostream> using namespace std; int main() { #if(1) char* a = new char[100]; char b[100] = {'/0'}; gets(a); int len = 0; char* c = a; while(*c++) { len++; } cout<<"len="<<len<<endl; char temp[20] = {'/0'}; int tmplen = 0; int idx = 0; for(int i=0; i<len; ++i) { if(a[len-i-1] == ' ') { for(int j=0; j<tmplen; j++) { //cout<<temp[j]<<endl; b[idx++] = temp[j]; } tmplen = 0; memset(temp,'/0',20); } temp[tmplen++] = a[len-i-1]; } for(int j=0; j<tmplen; j++) { //cout<<temp[j]<<endl; b[idx++] = temp[j]; } cout<<b; delete[] a; getchar(); return 0; #else // function 2: char src[] ="i am a student."; int len = strlen(src); char *Des=new char[sizeof(src)]; char *des =Des; for(int i=0 ;i<len; ++i) { if(src[len-i-1] == ' ') { Des[i]=' '; des = Des+i+1; } else { // 如果不是空格的情况下: 将当前单词向后移位..留出最前面的位置 for(int j=i-(des-Des); j > 0 ;j--) des[j]=des[j-1]; // 将当前的字符插入到最前面. des[0]=src[len-i-1]; } } Des[len] ='/0'; std::cout<<Des; delete[] Des; getchar(); return 0; #endif }