# Include <iostream> # include <string> using namespace STD; // invert the words in a sentence without changing the punctuation marks to p228void rever (char * Str) {Int J = strlen (STR)-1; int I = 0; while (I <j) {char TMP = STR [I]; STR [I] = STR [J]; STR [J] = TMP; I ++; j -- ;}} void reverword (char * Str) {int I = 0; int begin = 0; int end = 0; while (STR [I]) {// identifies the start and end positions of each word, then reverse if (STR [I]! = '') {Begin = I; while (STR [I]! = ''& STR [I]! = '\ 0') I ++; I --; end = I;} while (begin <End) {char TMP = STR [begin]; STR [begin] = STR [end]; STR [end] = TMP; begin ++; end --;} // ensure that spaces are skipped and whether the end is reached, otherwise it will cause an endless loop I ++;} int main () {// note: this will cause an error because this is a String constant and cannot be modified !!! // Char * P = "Hello World"; char P [] = "Hello world. "; rever (p); cout <p <Endl; reverword (p); cout <p <Endl; return 0 ;}