rendered paste body#include "warship_1.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>
#include <ctype.h>
struct warship createWarship(const char* name, const char* class, size_t nGuns, size_t nCrew)
{
assert(name);
assert(class);
struct warship new;
new.name= malloc(strlen(name) * sizeof(char));
strcpy(new.name, name);
strcpy(new.class, class);
new.nGuns = nGuns;
new.nCrew = nCrew;
new.captain.name= NULL;
return new;
}
void deleteWarship(struct warship warship)
{
free(warship.name);
free(warship.captain.name);
}
void warshipSetCaptain(struct warship* warship, const char* name, size_t yearsInService)
{
assert(warship);
assert(name);
free(warship->captain.name);
warship->captain.name= malloc(strlen(name) * sizeof(char));
strcpy(warship->captain.name, name);
warship->captain.yearsInService = yearsInService;
}
void printWarship(const struct warship warship)
{
printf("Warship %s of the %s class\n%lu guns and %lu crew\n", warship.name, warship.class, warship.nGuns, warship.nCrew);
if(warship.captain.name != NULL)
{
printf("Commanded by %s with %lu years of experience\n", warship.captain.name, warship.captain.yearsInService);
}
}