Вы должны использовать промежуточный одномерный массив символов при вызове fgets
, как, например,
for ( char line[LINE_SIZE]; fgets( line, LINE_SIZE, fp) != NULL; )
{
if ( line[0] != '\n' )
{
line[ strcspn( line, "\n" ) ] = '\0';
strcpy( str[i++], line );
}
}
Если строка может содержать пробелы, вы можете изменить условие оператора if следующим образом
for ( char line[LINE_SIZE]; fgets( line, LINE_SIZE, fp) != NULL; )
{
size_t n = strspn( line, " \t" );
if ( line[n] != '\n' && line[n] != '\0' )
{
line[ n + strcspn( line + n, "\n" ) ] = '\0';
strcpy( str[i++], line );
}
}
В приведенном выше фрагменте кода вы можете заменить этот оператор
strcpy( str[i++], line );
на этот оператор, если хотите, чтобы строка не содержала начальных пробелов.
strcpy( str[i++], line + n );