Information

Author(s) Olivier Bonaventure, Magali Legast
Deadline Keine Frist
Abgabenlimit No limitation

Einloggen

Manipulation de strings

Un string contient différents caractères qui peuvent chacun apparaître une ou plusieurs fois. Vous devez écrire le corps de la fonction ndiff qui prend en argument une chaine de caractères quelconque et retourne une chaine de caractères contenant une et une seule fois chacun des caractères présents dans la chaine reçue en argument. Le pointeur retourné doit être alloué avec malloc ou calloc, y compris dans le cas d'une chaine de caractère vide. La taille de sa zone mémoire doit correspondre au nombre de caractères différents dans le string ('\0' compris). L'ordre des caractères n'a pas d'importance.

Vous pouvez utiliser la fonction strlen dans votre réponse.

Exemples :

ndiff("AaaBBCb") retourne "AaBCb" (zone mémoire de 6 bytes)

ndiff("ZZZZ12AAZZ21") retourne "Z12A" (zone mémoire de 5 bytes)

ndiff("") retourne "" (zone mémoire de 1 byte)

Le syllabus est accessible depuis l'URL https://sites.uclouvain.be/SyllabusC/notes/Theorie/index.html

Les pages de manuel sont accessibles depuis les URLs suivants :

Attention: veuillez utiliser la version HTML du syllabus


Question 1: Recherche en memoire

Ecrivez le corps de la fonction ndiff.

 /* @pre string!=NULL, chaîne de caractères terminée par '\0'
  * @post retourne une chaîne de caractères contenant
  *       une seule fois chaque caractère présent dans string.
  *       le pointeur retourné doit être alloué par malloc
  *       et la taille de la zone mémoire retournée doit correspondre
  *       au nombre de caractères différents dans le string
  *       retourne NULL en cas d'erreur
  */

char * ndiff(char *string) {
Question 2: Fonctions supplémentaires

Insérez ici les fonctions supplémentaires dont vous avez besoin.

Question 3: Fonction de test optionnelle

Insérez votre code de test optionnel ci-dessous. Vous pouvez utiliser printf dans cette fonction pour débugger votre programme.

void montest(void) {