- 3,052
- 1,278
- CPU
- Intel i7 7700K
- Dissipatore
- Bequiet Dark rock pro 4
- Scheda Madre
- Msi pc mate z270
- HDD
- Seagate barracuda 1tb, silicon power NVME 500gb
- RAM
- Patriot viper steel 3733Mhz
- GPU
- Inno 3d gtx 1080 herculez design
- Monitor
- Asus mg279q
- PSU
- Corsair HX750
- Case
- Itek lunar 23
- Net
- Tiscali ftth
- OS
- windows 10,mint,debian,Arch linux
Salve a ,tutti ragazzi ho questo esercizio:
Creare i file dictionary.h e dictionary.c che consentano di utilizzare le seguenti strutture:
struct pair {
char key[256];
char value[256];
};
struct dictionary {
size_t size;
struct pair *data;
};
e la funzione:
extern char *find(const struct dictionary *dict, const char *key);
La struttura pair permette di memorizzare una coppia chiave-valore dove entrambi gli elementi sono costituiti da stringhe di al massimo 256 caratteri (terminatore compreso). La struttura dictionary invece permette di memorizzare un vettore di pair.
La funzione accetta in input un puntatore a una struct dictionary e una stringa C e deve cercare nel dizionario una pair avente come chiave una stringa uguale a quella passata nel parametro key e ritornare il puntatore all’elemento trovato.
La funzione ritorna NULL se almeno uno dei due parametri è NULL o se non viene trovato nessun elemento che ha la chiave cercata. Tutte le chiavi del dizionario sono uniche.
Ciò che mi manda in panne è la ricerca di questo valore
avendo una struct dict come costante come faccio ad incrementare il puntatore *data in modo che punti alla struttura successiva in modo da controllare il valore?
Devo dichiarare una struttura di tipo pair temporanea?
io ho creato questo codice che non mi da il risultato corretto, sapreste delucidarmi?
Creare i file dictionary.h e dictionary.c che consentano di utilizzare le seguenti strutture:
struct pair {
char key[256];
char value[256];
};
struct dictionary {
size_t size;
struct pair *data;
};
e la funzione:
extern char *find(const struct dictionary *dict, const char *key);
La struttura pair permette di memorizzare una coppia chiave-valore dove entrambi gli elementi sono costituiti da stringhe di al massimo 256 caratteri (terminatore compreso). La struttura dictionary invece permette di memorizzare un vettore di pair.
La funzione accetta in input un puntatore a una struct dictionary e una stringa C e deve cercare nel dizionario una pair avente come chiave una stringa uguale a quella passata nel parametro key e ritornare il puntatore all’elemento trovato.
La funzione ritorna NULL se almeno uno dei due parametri è NULL o se non viene trovato nessun elemento che ha la chiave cercata. Tutte le chiavi del dizionario sono uniche.
Ciò che mi manda in panne è la ricerca di questo valore
avendo una struct dict come costante come faccio ad incrementare il puntatore *data in modo che punti alla struttura successiva in modo da controllare il valore?
Devo dichiarare una struttura di tipo pair temporanea?
io ho creato questo codice che non mi da il risultato corretto, sapreste delucidarmi?
C:
[B]leggi_linee.h[/B]
#ifndef Header
#define Header
#include<stdlib.h>
#include<stdio.h>
extern char **leggi_linee(const char *filename);
#endif // !Header
[B]leggi_linee.c[/B]
#include"dictionary.h"
extern char *find(const struct dictionary *dict, const char *key)
{
char *ret=malloc(256*sizeof(char);
for (size_t i = 0; i < dict->size; i++) {
if (strcmp(*key, dict->data->key[i]))
ret = &(dict->data)->key[i];
return ret;
}
}