Mettre en majuscule la premiere lettre

Bonjour

Pourrais avoir une idee de comment creer un compteur permettant de mettre la premiere lettre d une chaine de caractere en majuscule puis le reste en minuscule.

je desire juste des explications au mieux un algorithme et non un code tout fait

Merci.

Tu cherches à modifier la première lettre d’une chaine de caractère ? oui mais avec quoi un shell ?

Bonsoir Clochette

je veux ecrire une fonction qui met les premieres lettres d une chaine de caractere en majuscule puis le reste en minuscule je precise que c est en C.

Bonjour

Je suppose que tu voulais plutôt écrire :
le premier caractère d’une chaîne de caractères
Sinon, il va falloir préciser quel est le nombre de caractères que tu voudrais mettre en majuscule.


Quelques pistes :

  • Certains caractères (comme par exemple les chiffres) ne peuvent pas être mis en majuscule.
  • Dans la table des caractères ASCII, la différence entre le code d’un caractère en majuscule et minuscule est de 20 (en hexadécimal)

Donc, si l’encodage des caractères contenus dans la chaîne de caractères à traiter
est compatible avec la table des caractères ASCII

et si le premier caractère de la chaîne de caractères est bien une lettre minuscule entre a et z
(donc si le code hexadécimal du caractère est compris entre 61 et 7a inclus )

alors, pour obtenir le caractère en majuscule correspondant,
il faudra soustraire la valeur hexadécimale 20
au code hexadécimal du caractère minuscule à convertir en majuscule.


EDIT :

Bien sûr, cette méthode ne prendra pas en compte :

  • les caractères accentués
  • les chiffres qui seraient en indice ou exposant

Si besoin tu peux aller voir tous les caractères Unicodes

3 J'aime

En Python :

>>> "fnbin nebudt. bdve ejb".title()
'Fnbin Nebudt. Bdve Ejb'
>>> "fnbin nebudt. bdve ejb".capitalize()
'Fnbin nebudt. bdve ejb'
>>> "fnbin nebudt. bdve ejb".upper()
'FNBIN NEBUDT. BDVE EJB'

[Hors sujet ]

Dans une ligne de commande(s) de l’interpréteur bash :

Si tu veux mettre le premier caractère d’un mot en majuscule
tu mets le curseur juste avant ou sur le premier caractère du premier mot à modifier (une fois fait, ça passera au mot suivant)
et tu tapes le raccourcis clavier Alt+C (<=> Capitalize)

Si tu veux toutes les lettres d’un mot en majuscule,
tu mets le curseur sur un caractère du premier mot à modifier (une fois fait, ça passera au mot suivant)
et tu tapes le raccourcis clavier Alt+U (<=> Uppercase)

Si tu veux toutes les lettres d’un mot en minuscule,
tu mets le curseur sur un caractère du premier mot à modifier (une fois fait, ça passera au mot suivant)
et tu tapes le raccourcis clavier Alt+L (<=> Lowercase)

[/Hors sujet ]

1 J'aime

merci Nicola mais je le veux en C

Merci MicP

Pour tes reponses edifiantes

Salut,
il existe les fonctions tolower(int c) et toupper(int c) pour passer respectivement un caractère en minuscule/majuscule.
Donc en C, pour un string tu fais toupper(chaine[0]) puis tu boucle en tolower(chaine[i]) jusqu’à ce que tu atteignes le caractère nul ( \0 )

Merci pour ton message