Cours 10.4. Chaînes de caractères et fonctions

Explications

Les chaînes de caractères héritent des propriétés de tableaux de caractères. Il en va de même si la chaîne de caractères est un argument d'une fonction. Cette dernière peut donc modifier le contenu de la chaîne (sauf si l'argument est déclaré avec const). Toutefois, grâce au zéro de fin de chaîne, il n'est pas nécessaire d'ajouter un second paramètre pour spécifier la taille de la chaîne.

Exemple

La fonction ucfirst() ci-dessous met le premier caractère de la chaîne str en majuscule :

void ucfirst(char str[]) {
  if (str[0]<'a' || str[0]>'z') return;
  str[0] += 'A' - 'a';
}

La chaîne de caractères est passée en paramètres comme un tableau de caractères.

Exercices

Exercice 1

Écrire une fonction str_2_upper() qui convertit la chaîne de caractères passée en paramètre en majuscule.

Par exemple :

Entrez un texte : Bonjour !           
En majuscule : BONJOUR !

Exercice 2

Écrire une fonction nbSpace() qui retourne le nombre d'espace dans une chaîne de caractères. Voici le résultat escompté du programme :

Le texte "To be or not to be..." contient 5 espace(s).

Exercice 3

Écrire une fonction int isCharIn(char s[], char needle) qui retourne le nombre d’occurrences needle dans la chaîne s. Voici le résultat escompté du programme :

Le texte "To be or not to be..." contient 4 'o' et 2 'e'.

Exercice 4

Écrire une fonction char palindrome() qui retourne :

Entrez un mot : radar
radar est un palindrome.
Entrez un mot : pifomètre
pifomètre n'est pas un palindrome.

Quiz

Pour passer une chaîne de caractère en paramètre dans une fonction ...

Vérifier Bravo ! Le caractère null permet de connaître la fin de la chaîne et donc sa taille Essaie encore ...

Une chaîne de caractères passée en paramètres dans une fonction ...

char *strcpy(char *s1, const char *s2);
Vérifier Bravo ! Si une chaîne est passée avec le préfixe const, elle ne peut pas être modifiée par la fonction. Essaie encore ...

Une chaîne de caractères passée dans une fonction (sans const) peut être agrandie ...

Vérifier Bravo ! Le caractère de fin de chaîne doit être remplacé, sinon il continura d'indiquer la fin de la chaîne, même si un deuxième est ajouté après. Essaie encore ...

Voir aussi


Dernière mise à jour : 27/11/2022