#include "namesarchive.h" #include #include #include #define INDEX_NOT_FOUND -1 static char *names[MAX_NAMES]; static unsigned int numberOfEntries = 0; int addName(const char *name) { if(numberOfEntries < MAX_NAMES) { names[numberOfEntries] = (char *)malloc(strlen(name)+1); if(names[numberOfEntries] != NULL) { strcpy(names[numberOfEntries], name); numberOfEntries++; return 1; } } return 0; } void printNames() { for(int i = 0; i < numberOfEntries; i++) { printf("%s\n", names[i]); } } static int getNameIdx(const char *name) { for(int i = 0; i < numberOfEntries; i++) { if(strcmp(name, names[i]) == 0) return i; } return INDEX_NOT_FOUND; } static void removeAt(int idx) { for(int i = idx; i < numberOfEntries-1; i++) { free(names[i]); names[i] = names[i+1]; } numberOfEntries--; } int removeName(const char *name) { int idx = getNameIdx(name); if(idx == INDEX_NOT_FOUND) { return 0; } else { removeAt(idx); return 1; } }