Bonjour à tous!
Pour un TP je dois utiliser une procédure permettant de mettre en majuscule un nom. Cependant nous n'avons pas étudié les pointeur et les allocutions dynamique. Voici la fonction qui pose problème
déclaration:
définition:
Code : Sélectionner tout - Visualiser dans une fenêtre à part void majuscule(string nom);
et enfin l'appel dans mon code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 ///////////////////////////////////////////////////////////////////////////////////// //Procédure qui transforme une chaine en la même chaine entièrement en Majuscule // nom : nom que l'on veut transformer //Précondition, Postcondition : aucune ///////////////////////////////////////////////////////////////////////////////////// void majuscule(string nom) { int i;//compteur for(i=0;i<=((signed)(nom.length())-1);i++) { if(nom.at(i)>='a' && nom.at(i)<='z') { nom.at(i)=nom.at(i)-'a'+'A'; } } }
où noms[TAILLETAB] est u tableau de type string.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 for(i=0;i<=n-1;i++) { majuscule(noms[i]); }
Je sais qu'on ne peut pas passer un tableau un paramètre et donc que le & est n'est donc pas à mettre(mais j'ai quand même essayé ce qui m'a valu une erreur de LINKER).
La compilation se déroule bien mais cependant la procédure ne fait rien, elle ne passe pas les noms en majuscule!!! Je pense donc que cela est du à sa définition, et que elle convertit en majuscule chaque nom, mais que ce changement est annulé en dehors de la procédure, comme si on avait une fonction.
Donc si quelqu'un pouvait m'expliquer la démarche à suivre pour faire fonctionner cette procédure ça m'arrangerait bien (sans pointeur de préférence). Merci!
Partager