Cloner une chaîne de caractères
Bonjour,
Je souhaite écrire une fonction cloneStrings qui retourne une copie d'une chaîne de caractères passee en paramètre.
j'ai plusieurs questions :
1) Quel va être le prototype de la fonction ?
2) Comment allouer dynamiquement un tableau ?
3) Comment connaître la taille d'une chaine de caracteres ?
4) Ecrire la fonction.
Attention, je sais qu'il ne faut jamais retourner l'adresse d'une variable locale
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| char* uppercase(char s[]) { char tmp[MAX];
int i=-1; do {
i++;
tmp[i]=toupper(s[i]); }
while (tmp[i]!='\0');
return tmp; }
int main(int argc,char* argv[]) {
char* x=uppercase("abc");
printf("%s\n",x);
return 0;
} |
La chaîne "abc"est sur la pile, et se fait écraser lors de l'appel à printf Par conséquent, on ne peut pas retourner un tableau.
Il faudra utiliser de l'allocation dynamique.
Merci :)
:zoubi: