Fonction majuscule
Résolu/Fermé
hcp7kuz
Messages postés
238
Date d'inscription
mardi 18 août 2015
Statut
Membre
Dernière intervention
23 mars 2019
-
6 juil. 2017 à 00:16
hcp7kuz Messages postés 238 Date d'inscription mardi 18 août 2015 Statut Membre Dernière intervention 23 mars 2019 - 6 juil. 2017 à 12:03
hcp7kuz Messages postés 238 Date d'inscription mardi 18 août 2015 Statut Membre Dernière intervention 23 mars 2019 - 6 juil. 2017 à 12:03
A voir également:
- Fonction majuscule
- A majuscule - Guide
- Dans le texte, un seul mot a réellement été écrit en majuscule. quel est ce mot ? ✓ - Forum Word
- Mettre un texte en majuscule - Guide
- Fonction si et - Guide
- Touche majuscule inversée ✓ - Forum Windows
1 réponse
yg_be
Messages postés
21304
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 mars 2023
1 326
6 juil. 2017 à 09:11
6 juil. 2017 à 09:11
bonjour, la chaîne de départ se termine par un caractère NULL, indiquant la fin de la chaîne.
strlen() te donne la longueur de la chaîne, sans ce caractère NULL.
donc, ta fonction retourne une chaîne non terminée par un caractère NULL, ce qui explique ce que tu observes.
strlen() te donne la longueur de la chaîne, sans ce caractère NULL.
donc, ta fonction retourne une chaîne non terminée par un caractère NULL, ce qui explique ce que tu observes.
Modifié le 6 juil. 2017 à 10:48
A noter, qu'en C est garantit de valoir 1, il est donc inutile.
char * strToUpper(char * chaine) { char * result = NULL; int i; result = malloc((strlen(chaine) + 1)); for (i = 0; i < strlen(chaine); i++) { result[i] = toupper(chaine[i]); } result[i] = '\0'; return result; }On peut optimiser le code, aussi, en évitant de mettre dans la boucle for et en ne l'exécutant qu'une fois au début de la fonction.
Enfin, cela serait bien de tester que malloc a bien alloué la mémoire nécessaire et de décider de ce fait la fonction si ce n'est pas le cas.
Dal
6 juil. 2017 à 12:03
Merci !