Не могу вывести строчные элементы массива в СИ
Я читаю из заранее заготовленного текстового файла слова, разделенные запятой.
Реализуется это путем посимвольного чтения строки и записью n-го слова до запятой как элемента массива, затем массив очищается и переходит на работу с другой строкой.
Далее я хочу записать каждый 0-ой элемент(1 столбец) этого массива в другой массив с дальнейшим выводом его элементов через обычный цикл for, но ничего не получается и я получаю лишь ошибку сегментации или пустые значения.
Почему так и как все же достичь желаемого?
Вот кусок кода:
int main(void)
{
array_t a;
size_t i;
char *word[50];
char s[128];
char *es;
int j;
FILE *fp;
fp = fopen("f1", "r");
char *sss;
printf ("Считаны строки:\n");
//Чтение (построчно) данных из файла в бесконечном цикле
while (1)
{
// Чтение одной строки из файла
es = fgets (s,sizeof(s),fp);
//Проверка на конец файла или ошибку чтения
if (es == NULL)
{
// Проверяем, что именно произошло: кончился файл
// или это ошибка чтения
if ( feof (fp) != 0)
{
//Если файл закончился, выводим сообщение о завершении
//чтения и выходим из бесконечного цикла
printf ("\nЧтение файла закончено\n");
break;
}
else
{
//Если при чтении произошла ошибка, выводим сообщение
//об ошибке и выходим из бесконечного цикла
printf ("\nибка чтения из файла\n");
break;
}
}
//Если файл не закончился, и не было ошибки чтения
//выводим считанную строку на экран
array_init(a);
array_strtok(&a, s,"\r\t\n,.?!");
for (j=0; j<3; j++)
{
for (i = 0; i < a.cnt; i++)
{
printf("|%s %d|",a.arr[i], i);
sss=a.arr[0];
}
word[j]=sss;
printf("\n");
array_clear(&a);
}
}
for (j=0; j<3; j++)
{
printf("%s", word[j]);
}
return 0;
}
Ожидаемый результат вывода массива word[j]: look for, carry on, mistery Заранее спасибо за помощь! Это очень важно для меня.
