Моя программа правильно выводит 4 значения, но добавляет к некоторым из них странные символы.Что я делаю не так?
Я не уверен, что проблема заключается в моей функции копирования или моей функции печати.
Вот моя функция копирования (я должен написать свою собственную):
char* myStrCopy(char *destination,const char *source){
while(*source != '\0'){
*destination = *source;
*source++;
destination++;
}
Вот моя функция печати:
void printAllData(RentalAgency *agencies){
RentalAgency *agencies_ptr = agencies;
for(int i = 0; i < 3;i++,*(agencies_ptr++)){
cout << agencies_ptr->name << " ";
for(int j = 0; j < 5;j++){
cout << *(agencies_ptr->zipcode+j);
}
cout << endl;
RentalCar *inv_ptr = agencies_ptr->inventory;
for(int j = 0;j < MAX_CARS;j++,++inv_ptr){
cout << inv_ptr->getYear() << " ";
cout << inv_ptr->getMake() << " ";
cout << inv_ptr->getModel() << " ";
cout << inv_ptr->getPrice() << " ";
cout << boolalpha << inv_ptr->getAvailability() << endl;
}
cout << endl;
}
}
Вот объявление RentalAgency
:
struct RentalAgency{
char name[MAX_SIZE];
int zipcode[5];
RentalCar inventory[MAX_CARS];
};
Ожидаемый вывод RentalArray[2]
:
Alamo 89502
2011 Toyota Rav4 $65.02 true
2012 Mazda CX5 $86.75 true
2016 Subaru Outback $71.27 false
2015 Ford F150 $112.83 true
2010 Toyota Corolla $50.36 true
Но вместо этого он выдает:
Alamo 89502
2011 ToyotaN Rav4 65.02 true
2012 Mazda CX5 86.75 true
2016 Subaru Outback 71.27 false
2015 FordÉ F15 112.83 true
2010 ToyotaÅ Corolla 50.36 true