使用string数组,以及内置sort快速排序
#include <iostream>
#include <cstdio>
#include <string>
#include <algorithm>

using namespace std;

int main() {
	string str;
	while(getline(cin, str)) {
		if (str == "ENDOFINPUT") {
			break;
		}
		string sub[128];
		int i = 0;	
		while (i < str.size()) {
			int t = str.size() - i;
			sub[i].insert(0, str, i, t);
			i++;
		}
		sort(sub, sub + i);
		for (int k = 0; k < i; k++) {
			cout << sub[k] << endl;
		}
	}
	return 0;
}