Procédure avec type string sans pointeur
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:
Code:
void majuscule(string nom);
définition:
Code:
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';
}
}
} |
et enfin l'appel dans mon code:
Code:
1 2 3 4 5
|
for(i=0;i<=n-1;i++)
{
majuscule(noms[i]);
} |
où noms[TAILLETAB] est u tableau de type string.
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!