[C] question simple chaine de char à agrandir

Fermé
Nettogrof Messages postés 521 Date d'inscription lundi 29 septembre 2003 Statut Membre Dernière intervention 8 décembre 2005 - 27 nov. 2003 à 16:10
Nettogrof Messages postés 521 Date d'inscription lundi 29 septembre 2003 Statut Membre Dernière intervention 8 décembre 2005 - 27 nov. 2003 à 16:43
Bonjour à tous.

Je programme en C, avec le logiciel Visual C++ 6.0

J'ai une question simple. Par exemple j'ai un nom de fichier que je recois en paramètre, et je veux simplement lui ajouter l'extension.

Quel est le meilleur facon?

int changementNom(*char nomFichier){

char *nom2;

//Est-ce ?
realloc(nomFichier, strlen(nomFichier) + 4);
strcat(outfile,".txt");

//ou bien

nom2=(*char) malloc(strlen(nomFichier)+4);
strcpy(nom2,nomFichier);
strcat(nom2,".txt");

// Ou bien  une autre suggestion?


return 0;
}


p.s. le code si-dessus est purement fictionnel, car je sais que le return 0; est inutile.

Nettogrof tseb era seiromem emoS
A voir également:

4 réponses

Si tu es en C++, il me semble que tu peux passer une référence à ta fonction plutôt qu'un pointeur. ( char &nomFichier je crois)
Toujours de mémoire, si tu as la bibliothèque qui va bien tu peux faire : nomFichier += ".txt"

Sinon ta deuxième méthode me semble pas trop mal
0
Ola désolé je m'emballait.
En fait mon premier truc marche avec une classe string comme celle que l'on trouve là :
"http://www.freenix.fr/unix/linux/HOWTO/C++Programming-HOWTO-15.html#Annexe%20B"

Donc tu peux t'inspirer de la fonction concat ou de la redéfinition de l'opérateur + (il utilise bien les références tout de même)
a+
0
A cette heure j'ai deja plus les yeux en face des trous. Voila le .cpp correspondant au .h qu'il y avait dans mon précédent message:
"http://www.freenix.org/unix/linux/HOWTO/C++Programming-HOWTO-16.html"

En esperant que çà t'es aidé
0
Nettogrof Messages postés 521 Date d'inscription lundi 29 septembre 2003 Statut Membre Dernière intervention 8 décembre 2005 672
27 nov. 2003 à 16:43
Merci de l'aide...


Nettogrof tseb era seiromem emoS
0