E3. Extraire une valeur sous condition
Exercice précédent : E2. Affichage d'un couple clé valeur Exercice suivant : E4. Dans une chaîne, trouver la clé, afficher sa valeur
Consignes
Vous devez écrire une fonction qui extrait la valeur associée à une clé. La valoir doit être copiée dans une chaîne de caractères dynamiquement allouée.
Seulement, vous ne devez extraire la valeur que si la clé correspond à une deuxième chaîne passée en paramètre.
Si la clé ne correspond pas n’allouez rien et renvoyez NULL.
La fonction prend en paramètre une chaîne de caractère qui doit être au format "clé=valeur" et une seconde chaîne qui contient la clé désirée.
char *extract_value(const char *line, const char *key);
Exemple
Soit le main suivant :
int main(void)
{
char *str;
str = extrct_value("toto=tata", "toto");
printf("str is %s\n", str);
free(str);
str = extrct_value("toto=tata", "riri");
printf("str is %s\n", str);
free(str);
str = extrct_value("a=b", "c");
printf("str is %s\n", str);
free(str);
str = extrct_value("toto=tata", "");
printf("str is %s\n", str);
free(str);
str = extrct_value("", "toto");
printf("str is %s\n", str);
free(str);
}
Nous nous attendons à la sortie suivante :
str is tata
str is (null)
str is (null)
str is (null)
str is (null)
En cas de difficulté
Si vous bloquez sur cet exercice, cette annexe peut vous aider : A1. split_inplace