Я бы обобщил, построив массив указателей и отсортировав его с использованием алгоритма минимальной пузырьковой сортировки (или используя qsort в stdlib, лучше, если вы не будете экстракодировать), если в порядке возрастания, то первый указатель указывает Строка вам нужна. Даже если это домашнее задание, я думаю, что вы должны обобщить (что, если слова 4 или 5 ...?) И научиться обобщать такие задачи.
char *ptrs[] = { word1, word2, NULL };
// later you initilize third too
ptrs[2] = word3;
// use qsort with strcmp as comp. function
qsort(ptrs, sizeof(void *), 3, mwstrcmp);
// ...
// pick firts ptr
char *first = ptrs[0];
// print last 4 chars, see other answers or:
// an alternative naive way of getting last 4 chars printed
int l = strlen(first);
char *fourstr = first;
if ( l > 4 ) fourstr += l - 4;
printf("%s", fourstr); // if length is < 4, it prints the whole string.
EDIT
mwstrcmp
- это оболочка, которая разыменовывает указатели, поскольку qsort передает указатели на объект (которые являются указателями ...):
int mwstrcmp(const char **a, const char **b)
{
return strcmp(*a, *b);
}
(предупреждения возможно ленивые проверить сейчас ...)