Rempissage d'un tableau par des chaine
Fermé
amani
-
6 déc. 2018 à 11:57
[Dal] Messages postés 6057 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 17 mars 2023 - 7 déc. 2018 à 09:23
[Dal] Messages postés 6057 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 17 mars 2023 - 7 déc. 2018 à 09:23
A voir également:
- Rempissage d'un tableau par des chaine
- Tableau croisé dynamique - Guide
- Le fichier contient une liste de prénoms. triez ce tableau par ordre alphabétique des prénoms. quel mot est formé par les 6 premières lettres de la colonne code ? - Forum Bureautique
- Afficher un tableau en c - Forum C
- Tableau ascii - Guide
- Extraire des données d'un tableau excel vers un autre tableau ✓ - Forum Excel
1 réponse
[Dal]
Messages postés
6057
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
17 mars 2023
1 043
Modifié le 6 déc. 2018 à 12:49
Modifié le 6 déc. 2018 à 12:49
Salut amani,
Ta saisie est répétée parce que tu utilises deux boucles for imbriquées, dont la 2ème qui multiplie par 20 le nombre de saisies.
Il y a d'autres problèmes, car ta déclaration
Si tu veux que ton programme réserve un espace pour un tableau de 60 chaînes de caractère d'une longueur maximale de 19 caractères chacune, tu dois déclarer
Ensuite, tu désignes la chaîne 1 simplement avec
Note que scanf, tel que tu l'utilises, ne va pas vérifier si la saisie de l'utilisateur est valide, ni si elle ne dépasse pas la taille de chaîne pouvant être stockée.
Dal
N.B. :
Ta saisie est répétée parce que tu utilises deux boucles for imbriquées, dont la 2ème qui multiplie par 20 le nombre de saisies.
Il y a d'autres problèmes, car ta déclaration
char*ch1[60][20];est sans doutes fausse et ton
scanf("%s",&ch1[l][c]); aussi.
Si tu veux que ton programme réserve un espace pour un tableau de 60 chaînes de caractère d'une longueur maximale de 19 caractères chacune, tu dois déclarer
char st[60][20];
Ensuite, tu désignes la chaîne 1 simplement avec
st[0]et la chaîne 60 avec
st[59], et donc, tu n'as pas 2 indices à passer à scanf.
Note que scanf, tel que tu l'utilises, ne va pas vérifier si la saisie de l'utilisateur est valide, ni si elle ne dépasse pas la taille de chaîne pouvant être stockée.
Dal
N.B. :
char*ch1[60][20];réserve un tableau bidimensionnel de 60x20 pointeurs sur char. Un tel type ne permet que de stocker des pointeurs sur char (1200 pointeurs sur char exactement), et pas des char.
6 déc. 2018 à 18:18
6 déc. 2018 à 18:24
6 déc. 2018 à 19:03
Modifié le 7 déc. 2018 à 09:24
Si tu veux que ton programme réserve un espace pour un tableau de 60 chaînes de caractère d'une longueur maximale de 19 caractères chacune, tu dois déclarer char st[60][20];
J'ai indiqué un type approprié à ma compréhension de ton besoin. Tu n'as pas confirmé, ni infirmé cette compréhension, ce qui me laisse dans l'incertitude sur ce que tu veux vraiment faire.
Explique en quoi ce type ne serait pas approprié pour toi, puisque tu aurais besoin d'un autre selon toi, le genre de type que tu voudrais pour quelles données et quels besoins, car je ne saisis pas ce que tu veux dire par "un type équivalant a ce type".