Fonction majuscule
Résolu
hcp7kuz
Messages postés
250
Statut
Membre
-
hcp7kuz Messages postés 250 Statut Membre -
hcp7kuz Messages postés 250 Statut Membre -
Bonjour,
J'ai écris une fonction qui retourne une chaine mise en majuscule.
Problème, le fonction retourne effectivement la chaine en majuscule, mais avec également quelques caractères en plus, et je ne vois pas pourquoi.
Quelqu'un a un idée ?
Code :
Merci,
hcp7kuz
J'ai écris une fonction qui retourne une chaine mise en majuscule.
Problème, le fonction retourne effectivement la chaine en majuscule, mais avec également quelques caractères en plus, et je ne vois pas pourquoi.
Quelqu'un a un idée ?
Code :
char* strToUpper(char* chaine) {
char *result = NULL;
result = malloc((strlen(chaine) - 1) * sizeof(char));
int i;
for (i = 0; i < strlen(chaine); i++) {
result[i] = toupper(chaine[i]);
}
return result;
}
Merci,
hcp7kuz
A voir également:
- Fonction majuscule
- Fonction si et - Guide
- Majuscule - Guide
- É majuscule - Guide
- Code ascii de a majuscule - Guide
- Mettre en majuscule - Guide
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
Merci !