int main(int argc, char **argv) { int q, a, b; char cmd[32]; scanf("%s %d", str, &q); while (q--) { scanf("%s %d %d", cmd, &a, &b); if (strcmp(cmd, "print") == 0) { cmd_p(a, b); } else if (strcmp(cmd, "reverse") == 0) { cmd_rev(a, b); } else { cmd_rplc(a, b); } } return 0; }
int main(void) { int isRunning = 1; char buffer[MAX_LINE_LENGTH]; char command[MAX_LINE_LENGTH]; while(isRunning){ //int i; printf("> "); fgets(buffer, MAX_LINE_LENGTH, stdin); /*for( i = 0; i < MAX_LINE_LENGTH; i++ ){ buffer[i] = tolower(buffer[i]); }*/ sscanf(buffer, " %s ", (char*)&command); //Switch for commands if(strcmp(command, "BYE") == 0){ /*BYE*/ deleteAllEntry(entry_head); deleteAllSnapshot(snapshot_head); printf("bye"); isRunning = 0; }else if(strcmp(command, "HELP") == 0){ /*HELP*/ cmd_help(); }else if(strcmp(command, "LIST") == 0){ sscanf(buffer + strlen(command), "%s", (char*)&command); if(strcmp(command, "KEYS") == 0){ /*LIST KEYS*/ cmd_list_keys(); }else if(strcmp(command, "ENTRIES") == 0){ /*LIST ENTRIES*/ cmd_list_entries(); }else if(strcmp(command, "SNAPSHOTS") == 0){ /*LIST SNAPSHOTS*/ cmd_list_snapshots(); } }else if(strcmp(command, "GET") == 0){ /*GET*/ char key[MAX_KEY_LENGTH]; sscanf(buffer + strlen(command), "%s", (char*)&key); cmd_get(key); }else if(strcmp(command, "DEL") == 0){ /*DEL*/ char key[MAX_KEY_LENGTH]; sscanf(buffer + strlen(command), "%s", (char*)&key); cmd_del(key); }else if(strcmp(command, "PURGE") == 0){ /*PURGE*/ char key[MAX_KEY_LENGTH]; sscanf(buffer + strlen(command), "%s", (char*)&key); cmd_purge(key); }else if(strcmp(command, "SET") == 0){ /*SET*/ int i = 0; char key[MAX_KEY_LENGTH]; char *endptr; int *values = (int*)malloc(MAX_LINE_LENGTH/2*sizeof(int)); sscanf(buffer + strlen(command), "%s", (char*)&key); endptr = buffer + strlen(command) + strlen(key) + 2; while(1){ values[i] = strtol(endptr, &endptr, 10); if(*endptr == '\n'){ cmd_set(key, values, i+1); break; } i++; } free(values); }else if(strcmp(command, "PUSH") == 0){ /*PUSH*/ int i = 0; char key[MAX_KEY_LENGTH]; char *endptr; int *values = (int*)malloc(MAX_LINE_LENGTH/2*sizeof(int)); sscanf(buffer + strlen(command), "%s", (char*)&key); endptr = buffer + strlen(command) + strlen(key) + 2; while(1){ values[i] = strtol(endptr, &endptr, 10); if(*endptr == '\n'){ cmd_push(key, values, i+1); break; } i++; } free(values); }else if(strcmp(command, "APPEND") == 0){ /*APPEND*/ int i = 0; char key[MAX_KEY_LENGTH]; char *endptr; int *values = (int*)malloc(MAX_LINE_LENGTH/2*sizeof(int)); sscanf(buffer + strlen(command), "%s", (char*)&key); endptr = buffer + strlen(command) + strlen(key) + 2; while(1){ values[i] = strtol(endptr, &endptr, 10); if(*endptr == '\n'){ cmd_append(key, values, i+1); break; } i++; } free(values); }else if(strcmp(command, "PICK") == 0){ /*PICK*/ char key[MAX_KEY_LENGTH]; int index; sscanf(buffer + strlen(command)+1, "%s", (char*)&key); index = strtol(buffer + strlen(command) + strlen(key)+2, (char**)&command, 0); cmd_pick(key, index); }else if(strcmp(command, "PLUCK") == 0){ /*PLUCK*/ char key[MAX_KEY_LENGTH]; int index; sscanf(buffer + strlen(command)+1, "%s", (char*)&key); index = strtol(buffer + strlen(command) + strlen(key)+2, (char**)&command, 0); cmd_pluck(key, index); }else if(strcmp(command, "POP") == 0){ /*POP*/ char key[MAX_KEY_LENGTH]; sscanf(buffer + strlen(command), "%s", (char*)&key); cmd_pop(key); }else if(strcmp(command, "DROP") == 0){ /*DROP*/ int id = strtol(buffer + strlen(command) +1 , (char**)&command, 10); cmd_drop(id); }else if(strcmp(command, "ROLLBACK") == 0){ /*ROLLBACK*/ int id = strtol(buffer + strlen(command) +1 , (char**)&command, 10); cmd_rollback(id); }else if(strcmp(command, "CHECKOUT") == 0){ /*CHECKOUT*/ int id = strtol(buffer + strlen(command) +1 , (char**)&command, 10); cmd_checkout(id); }else if(strcmp(command, "SNAPSHOT") == 0){ /*SNAPSHOT*/ cmd_snapshot(); }else if(strcmp(command, "MIN") == 0){ /*MIN*/ char key[MAX_KEY_LENGTH]; sscanf(buffer + strlen(command), "%s", (char*)&key); cmd_min(key); }else if(strcmp(command, "MAX") == 0){ /*MAX*/ char key[MAX_KEY_LENGTH]; sscanf(buffer + strlen(command), "%s", (char*)&key); cmd_max(key); }else if(strcmp(command, "SUM") == 0){ /*SUM*/ char key[MAX_KEY_LENGTH]; sscanf(buffer + strlen(command), "%s", (char*)&key); cmd_sum(key); }else if(strcmp(command, "LEN") == 0){ /*LEN*/ char key[MAX_KEY_LENGTH]; sscanf(buffer + strlen(command), "%s", (char*)&key); cmd_len(key); }else if(strcmp(command, "REV") == 0){ /*REV*/ char key[MAX_KEY_LENGTH]; sscanf(buffer + strlen(command), "%s", (char*)&key); cmd_rev(key); }else if(strcmp(command, "UNIQ") == 0){ /*UNIQ*/ char key[MAX_KEY_LENGTH]; sscanf(buffer + strlen(command), "%s", (char*)&key); cmd_uniq(key); }else if(strcmp(command, "SORT") == 0){ /*SORT*/ char key[MAX_KEY_LENGTH]; sscanf(buffer + strlen(command), "%s", (char*)&key); cmd_sort(key); }else{ printf("\n"); } } return 0; }