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
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 :
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)
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 )
oui donc c’est vraiment les sujet de 42, je sais pas si ton objectif est de le faire , j’arrive peut etre trop tard dcp mais tu dois verifier toute les conditions avant t’as lettre pour voir si tu dois la mettre en Maj en soustraiant 32 pour passer de minuscule a majuscule sur la table ascii. pcq si c’est bien le sujet que je crois tu n’as encore que le droit a write de unistd.h
En effet ce sont les sujets de 42 etant autodidacte j ai eu du mal a comprendre la methode consistant a soustraire les valeurs j ai trouve une autre methode mais si tu peux m eclairer un peu plus j en serai ravie
salut
Avec plaisirs en gros comme seul la fonctions write est autorisée tu dois passer par la table ascii (man ascii ou internet pour les valeurs ) les minuscule étant après les maj dans la table et étant sépare par 7 char pour passez de a (97) > A (65) tu fait -32 . Parce que tu peut attribuer des valeurs décimales a un char. j’espère avoir été claire si tu a des questions j’essayerai d’y répondre.