Chaine de caractere de taille variable

Signaler
Messages postés
25
Date d'inscription
jeudi 24 avril 2003
Statut
Membre
Dernière intervention
26 novembre 2008
-
Messages postés
584
Date d'inscription
mardi 26 novembre 2002
Statut
Membre
Dernière intervention
29 mai 2015
-
slt,
savez vous comment modifier la taille d'une chaine de caractere ?

par exemple si le nom de fichier fait 8 caracteres, je creai un fichier de 8 caracteres (exemple: nom1.txt, char[8])
et si le nom de fichier fait 5 caracteres, je creai un fichier de 5 caracteres (exemple: n.txt, char[5])

peut être que le lien à l'execution est la solution mais mon prog est en c et pas en c++.

merci
habibdu70@yahoo.fr

5 réponses

Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
26
nom1.txt ne rentre pas dans char[8], mais 9, LE ZERO FINAL DE CHAINE !!!
chaine[260] devrait suffire, non ?
BruNews, ciao...
Messages postés
25
Date d'inscription
jeudi 24 avril 2003
Statut
Membre
Dernière intervention
26 novembre 2008

oui merci mais le probleme c'est qu'apres avec chaine[260],
on aurais pas nom1.txt mais nom1.txt+des caracteres inconus car il doit y avoir 260 lettres.
par exemple si je fait fopen(chaine , "r"); le fichien nom1.txt ne vas pas etre ouvert et il vas y avoir une erreur.
voila.
merci
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
26
chaine[260];
strcpy(chaine, "nom1.txt");
utilises chaine comme tu veux.
On met autre chose dedans:
strcpy(chaine, "NOUVEAU TEXTE");

BruNews, ciao...
Messages postés
515
Date d'inscription
dimanche 25 mai 2003
Statut
Membre
Dernière intervention
27 avril 2006
2
ce que tu as l'air d'avoir du mal a comprendre, c'est que la chaine de caractère, meme si elle peut en prendre 260, ne va pas être pris entierement par la fonction
En faite, elle parcoura ta chaine jusqu'a trouver un 0 binaire et s'aretera ensuite

par exemple, avec un tableau de char :

n|o|m|1|.|t|x|t|\0|a|b|c|d|e|f|g|h|i|.....

Cette chaine, bien qu'elle possède d'autres caractères àprès, ne vas se lire que "nom1.txt", après, il y a un zéro binaire (\0), donc on s'arrete

le \0 est mis en générale automatiquement par tte les fontion existante, si tu ne manipule pas ta chaine toi meme, tu n'as pas besoin de le rajouter

voila, j'espere que ce ptit cour pourra t'etre utile
Messages postés
584
Date d'inscription
mardi 26 novembre 2002
Statut
Membre
Dernière intervention
29 mai 2015

Sinon tu peux allouer un tableau de la taille que tu veux avec un malloc.