All pastes #2121104 Raw Edit

Something

public text v1 · immutable
#2121104 ·published 2012-02-23 19:34 UTC
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);
	}
	
}