Start from the end character and traverse till first. Begin loop if character index= first then print string(current index) else if character = ' ' then /*space*/ print string(current index) print space set character = delimiter /* Here I am cutting the string. You can call some garbage collecting function to free up the rest of the memory space*/ end if End loop /* This algorithm will just print the string in reverse worded way. But in case you need a reversed string you can go on appending whatever is printed here to the result string*/