Adding "find" to ex17 extra credit
This commit is contained in:
parent
6c837610a1
commit
a3f31cd6bb
@ -152,6 +152,23 @@ void Database_list(struct Connection *conn)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Database_find(struct Connection *conn, char *search)
|
||||||
|
{
|
||||||
|
int i = 0;
|
||||||
|
struct Database *db = conn->db;
|
||||||
|
|
||||||
|
for(i = 0; i < MAX_ROWS; i++) {
|
||||||
|
struct Address *cur = &db->rows[i];
|
||||||
|
|
||||||
|
if(cur->set) {
|
||||||
|
if(strstr(cur->email, search) != NULL ||
|
||||||
|
strstr(cur->name, search) != NULL) {
|
||||||
|
Address_print(cur);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
char usage[64];
|
char usage[64];
|
||||||
@ -193,11 +210,16 @@ int main(int argc, char *argv[])
|
|||||||
Database_write(conn);
|
Database_write(conn);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 'f':
|
||||||
|
if(argc != 4) die("Need something to find", conn);
|
||||||
|
Database_find(conn, argv[3]);
|
||||||
|
break;
|
||||||
|
|
||||||
case 'l':
|
case 'l':
|
||||||
Database_list(conn);
|
Database_list(conn);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
die("Invalid action, only: c=create, g=get, s=set, d=del, l=list", conn);
|
die("Invalid action, only: c=create, g=get, s=set, d=del, l=list, f=find", conn);
|
||||||
}
|
}
|
||||||
|
|
||||||
Database_close(conn);
|
Database_close(conn);
|
||||||
|
Loading…
Reference in New Issue
Block a user