У меня проблема с массивом на C. Видите ли, это часть моего кода, которая в основном читает файл и организует координаты вершин участков административных подразделений 3-го уровня в Португалии, чтомы называем Freguesias.В этой части упражнения мне нужно написать имя всех административных подразделений 2-го уровня - Concelhos (который уже хорошо определен в моем коде в массиве Cartography cartography, это не проблема), которые появляются в файле.
Я хочу сделать функцию, которая показывает, что Concelhos появляется в файле, и я хочу написать с этими точными подфункциями и функциями, чтобы я мог изменить некоторые вещи позже, но по некоторым причинам он не печатает строкив "command_list_concelhos" он просто печатает пустые строки.Я не знаю, почему это происходит, особенно если это правильно, поэтому я делаю printf внутри и вне для for в read_string_concelhos.
Извините, если этот вопрос неправильно объяснен, слишком большой или просто маленькая деталь, которую я упускаю, но у меня нет лучшего способа объяснить это ...
#define MAX_STRING 256
#define MAX_NAMES 50
typedef char String[MAX_STRING];
typedef struct {
String list[MAX_NAMES];
int n_strings;
} StringList;
int read_string_concelhos(StringList s ,Cartography cartography, int n)
{
int i, j=1;
strcpy (s.list[j-1], cartography[0].identification.concelho);
for ( i = 0 ; i < n ; i++){
if ( strcmp(cartography[i].identification.concelho, s.list[j-1]) != 0){
strcpy(s.list[j] , cartography[i].identification.concelho);
j++;
}
}
return j; // n_strings
}
void command_list_concelhos(Cartography cartography, int n)
{
StringList s;
s.n_strings = read_string_concelhos(s, cartography, n);
int i;
for(i = 0; i < s.n_strings; i++ )
{
printf("\n", s.list[i]);
}
}
Fail
Как это должно выглядеть