Я пытаюсь заполнить таблицу слово за словом методом fgets ().Мне нужно заполнить таблицу словами (максимум 25), которые пользователь пишет шаг за шагом.Проблема в том, что на моем терминале, если я делаю для примера:
- ab (затем нажмите Enter)
- ac (затем нажмите Enter)
- ad (затем нажмитеEnter)
- tu (затем нажмите Enter)
- (затем нажмите Ctrl + D для остановки)
Вывод:
Так что в основном это просто копирование последнего слова для каждого введенного мной ввода
Я пытался заменить "tab [length] = line;"с помощью "strcpy (tab [length], line);"но когда я делаю это, у меня появляется «Ошибка сегментации (ядро сброшено)»
#define NBRE_CHAR 256
int main(int argc, char const *argv[])
{
char* tab[25];
int length =0;
char line[NBRE_CHAR];
while(fgets(line,NBRE_CHAR,stdin) != NULL){
line[strlen(line)-1] = '\0'; // to delete \n
tab[length] = line;
length++;
}
for (int i = 0; i < length; i++)
{
printf("%s\n", tab[i] );
}
}