A voir également:
- Le cned a encore frappé...
- Annuler frappe clavier - Accueil - Outils
- Problème clavier frappe incohérente - Forum Bureautique
- Le clavier de votre PC se met à écrire n'importe quoi ? Voici comment régler le problème facilement - Accueil - Informatique
- Décalage entre frappe et affichage - Forum Matériel & Système
- Lancer frappé film complet gratuit - Forum Cinéma / Télé
6 réponses
[Dal]
Messages postés
6198
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
13 décembre 2024
1 096
Modifié le 27 août 2020 à 10:04
Modifié le 27 août 2020 à 10:04
Salut BonuxDu13,
Dans ton extrait de cours, tu postes deux choses :
Voilà le code que tu postes :
Ce code est du C valide. Bien que les types ne soient pas précisés, on peut supposer avec le contexte qu'en ligne 3
Voilà le descriptif que tu postes censé être associé à ce code :
On utilise une boucle for pour pouvoir accéder à chacune des cases du tableau.
Le seul paramètre que l’on connaisse est l’adresse du pointeur qui n’est autre que l’adresse de base du tableau. Donc la
variable i permettra d’accéder à l’adresse de base pttab augmentée de la valeur de la variable i.
mot.at(i) ; permet d’accéder à chaque caractère de la chaîne de type string.
Ce descriptif est effectivement erroné en sa dernière ligne mise en gras car il évoque :
Il s'agit manifestement d'une coquille dans ton cours, que tu devrais signaler à son concepteur. Les chaînes C n'ont rien à voir avec les chaînes de type
Par ailleurs, dans le code proposé, on ne sait pas comment a été déterminée la valeur de
En réalité, pour se passer de ce paramètre, il suffirait que le code teste dans une boucle si le
C'est comme cela que K&R proposent un code d'exemple d'implémentation de
Dal
Dans ton extrait de cours, tu postes deux choses :
- un court code
- un descriptif explicatif du code
Voilà le code que tu postes :
for(int i=0;i<longueur;i++) { pttab[i]=mot[i]; // chaque caractère du mot est inscrit dans le tableau dynamique }
Ce code est du C valide. Bien que les types ne soient pas précisés, on peut supposer avec le contexte qu'en ligne 3
motest un tableau de
charet que
pttabest une variable pointeur sur
char, pointant vers un espace mémoire alloué d'une taille suffisante, et que longueur est d'un type entier et contient un entier positif prédéterminé correspondant au nombre de
charcomposant la chaîne y compris le caractère terminateur
'\0'.
Voilà le descriptif que tu postes censé être associé à ce code :
On utilise une boucle for pour pouvoir accéder à chacune des cases du tableau.
Le seul paramètre que l’on connaisse est l’adresse du pointeur qui n’est autre que l’adresse de base du tableau. Donc la
variable i permettra d’accéder à l’adresse de base pttab augmentée de la valeur de la variable i.
mot.at(i) ; permet d’accéder à chaque caractère de la chaîne de type string.
Ce descriptif est effectivement erroné en sa dernière ligne mise en gras car il évoque :
-
mot.at(i)
qui n'est pas présent dans le code commenté - comme tu l'as observé
mot.at(i)
n'existe pas en C, mais en C++ - en il outre il parle d'une chaîne de type
string
, ce qui n'existe pas non plus en C, mais en C++
Il s'agit manifestement d'une coquille dans ton cours, que tu devrais signaler à son concepteur. Les chaînes C n'ont rien à voir avec les chaînes de type
stringdu C++.
Par ailleurs, dans le code proposé, on ne sait pas comment a été déterminée la valeur de
longueur. Dès lors, il me semble que le descriptif pourrait indiquer "les deux seuls paramètres que l'on connaisse sont l’adresse du pointeur qui n’est autre que l’adresse de base du tableau, et la longueur de la chaîne y compris le caractère terminateur
'\0'" et probablement alerter l'utilisateur sur la nécessité que l'espace mémoire alloué sur
pttabsoit d'une taille suffisante.
En réalité, pour se passer de ce paramètre, il suffirait que le code teste dans une boucle si le
charcopié est
'\0'et si oui, arrête la copie. Cela peut se faire par exemple avec une boucle
do/
while, ou juste
while.
C'est comme cela que K&R proposent un code d'exemple d'implémentation de
strcpy()dans leur livre de référence.
Dal
yg_be
Messages postés
23405
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
20 décembre 2024
Ambassadeur
1 557
20 août 2020 à 14:11
20 août 2020 à 14:11
bonjour, qu'exprime le compilateur?
Phil_1857
Messages postés
1872
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
168
21 août 2020 à 18:28
21 août 2020 à 18:28
Bonjour,
mot[i], c'est un tableau
mot.at[i], c'est une structure mot qui possède un champ at (qui est un tableau) ....
Elle est déclarée quelque part cette structure ?
mot[i], c'est un tableau
mot.at[i], c'est une structure mot qui possède un champ at (qui est un tableau) ....
Elle est déclarée quelque part cette structure ?
Phil_1857
Messages postés
1872
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
168
22 août 2020 à 19:06
22 août 2020 à 19:06
oui, c'est bizarre ...
Sinon, on est sur le forum C, pas C++, là ...
Sinon, on est sur le forum C, pas C++, là ...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
BonuxDu13
Messages postés
13
Date d'inscription
lundi 24 août 2020
Statut
Membre
Dernière intervention
12 juillet 2021
24 août 2020 à 21:14
24 août 2020 à 21:14
ben ça tombe bien, moi je connais que le C et pas le c++
yg_be
Messages postés
23405
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
20 décembre 2024
1 557
25 août 2020 à 09:27
25 août 2020 à 09:27
pourquoi as-tu écrit "Quelqu'un m'a dit que cette formulation existe en c++"?
ta question est-elle relative au C ou au C++?
ta question est-elle relative au C ou au C++?
BonuxDu13
Messages postés
13
Date d'inscription
lundi 24 août 2020
Statut
Membre
Dernière intervention
12 juillet 2021
>
yg_be
Messages postés
23405
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
20 décembre 2024
26 août 2020 à 09:16
26 août 2020 à 09:16
ben au C car j'apprend pas encore le c++. Donc je vois pas ce qu'une formulation c++ viendrait faire dans mon cours de C, à moins que les profs du CNED se soient (encore) emmelés les pinceaux
yg_be
Messages postés
23405
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
20 décembre 2024
1 557
>
BonuxDu13
Messages postés
13
Date d'inscription
lundi 24 août 2020
Statut
Membre
Dernière intervention
12 juillet 2021
26 août 2020 à 09:40
26 août 2020 à 09:40
je remets donc la discussion dans le forum C.
Phil_1857
Messages postés
1872
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
168
>
yg_be
Messages postés
23405
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
20 décembre 2024
26 août 2020 à 11:03
26 août 2020 à 11:03
Bonjour BonuxDu13,
Ils se sont surement "emmêlé les pinceaux"
mot.at(i), ca n'existe pas en C
C'est surement mot.at[i]
Ca donnerait ceci (par exemple):
et donc mot.at[i] est le i ème caractère de la chaine at de la structure mot
Ils se sont surement "emmêlé les pinceaux"
mot.at(i), ca n'existe pas en C
C'est surement mot.at[i]
Ca donnerait ceci (par exemple):
struct mot { char at[255]; } ;
et donc mot.at[i] est le i ème caractère de la chaine at de la structure mot
Phil_1857
Messages postés
1872
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
168
25 août 2020 à 08:42
25 août 2020 à 08:42
Ah, ca a changé, on est dans le forum C++ maintenant ...
BonuxDu13
Messages postés
13
Date d'inscription
lundi 24 août 2020
Statut
Membre
Dernière intervention
12 juillet 2021
26 août 2020 à 09:17
26 août 2020 à 09:17
ah ben tiens oui, je pense bien avoir posté dans le forum C à la base...
28 août 2020 à 18:54