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 : Sélectionner tout - Visualiser dans une fenêtre à part
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