Я пытаюсь сравнить строки, полученные из struct Array, и пытаюсь проверить, равны ли они обе, прежде чем я их распечатаю.
int index;
for (int i = 0; strlen((cityArr+i)->cityname) != 0; i++) {
for (int j = 0; strlen((cityArr+j)->cityname) != 0; j++) {
if (strcmp(cityArr[i].cityname, cityArr[j].cityname) == 0) {
index = i;
}
}
}
printf("%s\n", cityArr[index].cityname);
Итак, имеющаяся у меня информация означает, что я должен просто напечатать дубликат, верно?
Тем не менее, мой вывод: Сан-Хосе, Форт-Уэрт, Сан-Диего, Питтсбург, Омаха, Стоктон, Остин, Нью-Йорк, КорпусКристи Форт-Уэрт
Я считаю, что единственный город, который должен быть напечатан, - это Форт-Уэрт, а не все города (как здесь).
Кто-то определил мой вопрос как дубликат - яПрочитайте тему, но я немного понимаю, как работает strcmp.strcmp возвращает значение 0, если строки равны, но здесь я пытаюсь распечатать одинаковые названия городов, но вместо этого он печатает каждый город в массиве, над которым я работаю.