//(c)Terminator
#include <stdio.h>
#include <string.h>
#include <malloc.h>
#include <ctype.h>


//подсчёт кол-во слов в строке
size_t count_words(const char* s){
	const char* p;
	size_t n = 0;
	
	while(*s){
		while(*s && ! isalpha(*s))
			++s;
		for(p = s; isalpha(*p); ++p);
		if((p - s) > 0)
			++n;
		s = p;
	}
	return n;
}



int main(void){
	size_t i, num;
	char** arr, *p;
	char   s[] = "Mercury Venus  Earth  Mars  Jupiter Saturn Neptun  Uran ";
	
	num = count_words(s);
	arr = (char**)malloc(num * sizeof(char*));
	if(arr == NULL)
		return 1;

	//разделить слова из строки в массив
	i = 0;
	for(p = strtok(s, " "); p != NULL; p = strtok(NULL, " ")){
		arr[i] = (char*)malloc((strlen(p) + 1) * sizeof(char));
		if(arr[i] != NULL)
			strcpy(arr[i], p);
		++i;
	}

	//вывести слова
	for(i = 0; i < num; ++i)
		puts(arr[i]);

	// в конце удалить
	for(i = 0; i < num; ++i){
		if(arr[i] != NULL)
			free(arr[i]);
	}
	free(arr);
	return 0;
}