Redéfinir un tableau de chaines de caractères

Fermé
metalect Messages postés 12 Date d'inscription vendredi 11 mars 2011 Statut Membre Dernière intervention 22 octobre 2013 - 20 juil. 2013 à 13:34
juliencolin54 Messages postés 217 Date d'inscription dimanche 22 juillet 2012 Statut Membre Dernière intervention 1 octobre 2013 - 22 juil. 2013 à 16:16
Bonjour,

J'utilise un tableau de chaines de caractères du type:
char tab[9][50];

Ce tableau marche très bien car je peux gérer ainsi 9 chaines de caractères dans une boucle.
Le soucis est que j'ai besoin de retrancher le dernier caractère de certaines des chaines de sorte:
tab[4][strlen(tab[4])-1] = '\0';

Là où est mon problème est que je veux pouvoir réutiliser le tableau pour d'autres chaines de caractères, mais le tableau diminue sans prendre l'intégralité du mot suivant,
en gros pour
tab[4]

le mot "lapin" devient progressivement:
lapi
lap
la
l
(puis rien)
lorsqu'on le récupère à partir de l'utilisateur ou fichier.

J'aimerai donc savoir si quelqu'un saurait comment redéfinir la taille du tableau pour faire en sorte que "lapin" reste "lapin" et même que par exemple tab[4] puisse aussi prendre la valeur d'une chaine plus grande comme "la forêt est belle".

Si quelqu'un voit ce que je veux dire et est capable de m'aider, je le remercie d'avance =)

A voir également:

2 réponses

apprendreEtSeDevelopper Messages postés 65 Date d'inscription vendredi 22 juillet 2011 Statut Membre Dernière intervention 18 octobre 2013 6
22 juil. 2013 à 14:54
Salut,

Tu n'as pas un exemple de code parce que je ne comprends pas trop ton problème :s
0
juliencolin54 Messages postés 217 Date d'inscription dimanche 22 juillet 2012 Statut Membre Dernière intervention 1 octobre 2013 55
Modifié par juliencolin54 le 22/07/2013 à 16:16
Ne fait surtout pas l'erreur de croire que mettre un '\0' réduit la taille en mémoire de ta chaîne de caractères !
C'est un caractère comme un autre...
Par conséquent :

char tab[10];
tab[0] = 'L';
tab[1] = 'a';
tab[2] = 'p';
tab[3] = '\0';

printf("%s\n", tab);

tab[3] = '1';
tab[4] = '\0';

printf("%s\n", tab);


donne en résultat :
Lap
Lap1


Comme ceci tu agrandis donc la longueur de tab...


Software is like sex, it's better when it's free - Linus Torvald
0