Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdlib.h>
- #include <stdio.h>
- #include <string.h>
- #include <stdbool.h>
- // Structure pour stocker une extension et un type MIME
- struct MimeEntry {
- char ext[11];
- char mt[51];
- };
- int main()
- {
- // Nombre d'éléments dans la table d'association.
- int N;
- scanf("%d", &N);
- // Nombre de noms de fichiers à analyser.
- int Q;
- scanf("%d", &Q);
- // Alloue de la mémoire pour stocker les entrées MIME en utilisant malloc
- struct MimeEntry *mtMap = (struct MimeEntry *)malloc(N * sizeof(struct MimeEntry));
- for (int i = 0; i < N; i++) {
- scanf("%s %s", mtMap[i].ext, mtMap[i].mt);
- for (int j = 0; mtMap[i].ext[j]; j++) {
- mtMap[i].ext[j] = tolower(mtMap[i].ext[j]);
- }
- }
- for (int i = 0; i < Q; i++) {
- // Un nom de fichier par ligne.
- char FNAME[257];
- scanf(" %[^\n]", FNAME);
- fgetc(stdin);
- // Trouve la dernière occurrence du point dans le nom de fichier.
- char *dotPos = strrchr(FNAME, '.');
- if (dotPos == NULL || dotPos[1] == '\0') {
- printf("UNKNOWN\n");
- } else {
- // Convertit l'extension en minuscules
- for (int j = 0; dotPos[j]; j++) {
- dotPos[j] = tolower(dotPos[j]);
- }
- // Recherche le type MIME correspondant dans la table d'association
- int found = 0;
- for (int j = 0; j < N; j++) {
- if (strcmp(dotPos+1, mtMap[j].ext) == 0) {
- printf("%s\n", mtMap[j].mt);
- found = 1;
- break;
- }
- }
- if (!found) {
- printf("UNKNOWN\n");
- }
- }
- }
- free(mtMap);
- return EXIT_SUCCESS;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement