Code:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct ts{
char *fname;
char *lname;
char *fingers;
char *toes;
struct ts *next;
}TS;
TS *mainrec=NULL;
void addone(char *, char *, char *, char *);
void printout();
void findandprint(char *, char *);
int delone(char *, char*);
int main(int argc, char **argv){
addone("joe", "bob", "1", "1");
printout();
addone("bobby", "sue", "2", "2");
printout();
addone("blah", "blah", "3", "3");
printout();
addone("bobby", "joe", "4", "4");
printout();
addone("bobby", "hill", "5", "5");
printout();
if(delone("joe", "bob")){
printf("Did not find - error\n\n");
}
else{
printf("found and deleted\n\n");
}
if(delone("joey", "bob")){
printf("Did not find - error\n\n");
}
else{
printf("found and deleted\n\n");
}
printout();
if(delone("bobby", "hill")){
printf("Did not find - error\n\n");
}
else{
printf("found and deleted\n\n");
}
printout();
findandprint("blah", "blah");
return 0;
}
void addone(char *pfname, char *plname, char *pfingers, char *ptoes){
TS *trec;
trec=(TS *)malloc(sizeof(TS));
trec->fname=pfname;
trec->lname=plname;
trec->fingers=pfingers;
trec->toes=ptoes;
if(mainrec==NULL){
mainrec=trec;
mainrec->next=NULL;
}
else{
trec->next=mainrec;
mainrec=trec;
}
}
int delone(char *pfname, char *plname){
TS *tprev, *tcur;
tcur=mainrec;
while(tcur!=NULL){
if(tcur->fname==pfname && tcur->lname==plname){
if(tcur==mainrec){
mainrec=tcur->next;
free(tcur);
return 0;
}
else{
tprev->next=tcur->next;
free(tcur);
return 0;
}
}
else{
tprev=tcur;
tcur=tcur->next;
}
}
return 1;
}
void printout(){
TS *trec;
trec=mainrec;
if(trec==NULL){
return;
}
else{
printf("What we have so far\n");
printf("___________________\n");
while(trec!=NULL){
printf("fname: %s\n", trec->fname);
printf("lname: %s\n", trec->lname);
printf("fingers: %s\n", trec->fingers);
printf("toes: %s\n\n", trec->toes);
trec=trec->next;
}
}
return;
}
void findandprint(char *pfname, char *plname){
TS *trec;
trec=mainrec;
if(trec==NULL){
return;
}
else{
while(trec!=NULL){
if(trec->fname==pfname && trec->lname==plname){
printf("found record for fname:%s, lname:%s\n", pfname, plname);
printf("___________________________________\n");
printf("fname: %s\n", trec->fname);
printf("lname: %s\n", trec->lname);
printf("fingers: %s\n", trec->fingers);
printf("toes: %s\n\n", trec->toes);
return;
}
trec=trec->next;
}
}
return;
}