Objectif:Etablir une liste de fonctions utiles pour la manipulation de chaines
de caractères. Ces fonctions vous feront bien sûr travailler les chaines de caractères lorsque vous
les écrirez, mais vous seront également très utiles pour vos futurs programmes, lorsque vous
voudrez les réutiliser.
Pour chaque fonction, je vous indique l'en-tête et un rapide descriptif, vous n'aurez plus qu'à
écrire le contenu. N'oubliez pas d'écrire également une fonction principale pour tester tous vos
exercices.
Afficher
void affiche (char *chaine);
Affiche chaine.
Saisir
char* saisie ();
Renvoie la chaine saisie par l'utilisateur. Pensez à gérer les
chaines avec espaces. Attention, scanf(''%s''); ne fonctionne pas si chaine contient des espaces
Nombre de caractères
int longueur_chaine (char *chaine);
Renvoie la taille de chaine, sans utiliser
strlen
Présent
int est_present (char *chaine, char c);
Renvoie 1 si c est présent au moins une
fois dans chaine
Occurences
int occurrences (char *chaine, char c);
Renvoie le nombre d'occurences de c
dans chaine
Nombre de mots
int nb_mots (char *chaine);
Renvoie le nombre de mots de chaine
Inclus
int est_inclus (char *chaine, char *souschaine);
Renvoie 1 si souschaine est
inclus dans chaine et 0 sinon. Exemple : fete est inclus dans cafeteria, mais fetes ne l'est pas
Préfixe
int est_prefixe (char *chaine, char *souschaine);
Renvoie 1 si souschaine est
préfixe de chaine et 0 sinon. Exemple : cafe est inclus dans cafeteria, mais cafes ne l'est pas
Suffixe
int est_suffixe (char *chaine, char *souschaine);
Renvoie 1 si souschaine est
suffixe de chaine et 0 sinon. Exemple : ria est inclus dans cafeteria, mais aria ne l'est pas
Majuscules
void maj_chaine (char *chaine);
Transforme la chaine passée en paramètre pour
que tous les caractères soient en majuscule. Exemple maj_chaine( ''Chaîne passée en paramètre'');
transforme cette chaine passée en paramètre en CHAINE PASSEE EN PARAMETRE. Attention aux
accents et au fait que la chaine est transformée directement, la fonction est de type void.
Copier
char* copie (char *chaine);
Renvoie une chaine de caractères qui est la copie
de la chaine passée en paramètre
Comparer
int compare (char *chaine1, char *chaine2);
Renvoie 1 si chaine1 et chaine2 sont
identiques, et 0 sinon
Concaténer
char* concatene (char *chaine1, char *chaine2);
Renvoie une chaine de
caractères qui concatène les deux passées en paramètre. Exemple : concatene( ''cafe'', ''teria'');
renvoie ''cafeteria''.
Inverser
char* inverse (char *chaine);
Renvoie une chaine de caractères qui est
l'inverse de la chaine passée en paramètre. Exemple : inverse ( ''chaine''); renvoie la chaine
''eniahc''.
Mélange aléatoire
Ecrivez un programme qui saisit un texte et qui mélange les voyelles de ce texte au hasard. Pour vérifier que votre programme fonctionne bien, vous devrez afficher les deux chaines, l'originelle saisie par l'utilisateur, et la nouvelle modifiée, l'une en-dessous de l'autre.