#include <stdio.h>

int main(void) {
	const size_t rows_count = 4;
	const size_t columns_count = 3;
	
	char matrix[rows_count][columns_count];
    // Предполагается, что группа символов содержит columns_count символов,
    // группы разделены пробелами, а число групп равно rows_count.
	char in[] = "аbc def efg ihj"; 
	char *runner = &in[0];
	size_t current_row = 0, current_column;
	
	do {
	  current_column = 0;
	
	  while (*runner && *runner != ' ') {
	    matrix[current_row][current_column++] = *runner++;    
	  }
	  
	  ++current_row;
	} while (*runner++);
	
	for (current_row = 0; current_row < rows_count; ++current_row) {
		for (current_column = 0; current_column < columns_count; ++current_column) {
			printf("%2c", matrix[current_row][current_column]);
		}	
		printf("\n");
	}
	
	return 0;
}
