Chaine de caractere
Fermé
Apprenant.3
Messages postés
6
Date d'inscription
mercredi 2 janvier 2019
Statut
Membre
Dernière intervention
3 mars 2019
-
Modifié le 2 mars 2019 à 01:35
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 - 4 mars 2019 à 12:37
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 - 4 mars 2019 à 12:37
A voir également:
- Chaine de caractere
- Caractère ascii - Guide
- Caractere speciaux - Guide
- Caractère spéciaux - Guide
- Caractère spéciaux mac clavier - Guide
- Chaine tnt gratuite sur mobile - Guide
3 réponses
yg_be
Messages postés
22698
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 avril 2024
1 471
2 mars 2019 à 10:49
2 mars 2019 à 10:49
bonjour, les compilateurs retournent parfois un message d'erreur indiquent pourquoi cela ne compile pas: n'en as-tu reçu aucun?
Dalfab
Messages postés
706
Date d'inscription
dimanche 7 février 2016
Statut
Membre
Dernière intervention
2 novembre 2023
101
3 mars 2019 à 10:25
3 mars 2019 à 10:25
Le compilateur doit indiquer ce qui ne lui plait pas.
Exemple d'erreurs imaginaires :
Exemple d'erreurs imaginaires :
- la fonction gets() est déconseillée depuis 30 ans (qui oserait la conseiller aujourd'hui?), elle est d'ailleurs interdite depuis 2011.
- ligne 20 : strcat() retourne un char* qui ne peut pas être copié dans c3[i] qui est un char.
- ligne 26 : le 21ieme caractère ne fait pas partie du tableau de 20 caractères.
Apprenant.3
Messages postés
6
Date d'inscription
mercredi 2 janvier 2019
Statut
Membre
Dernière intervention
3 mars 2019
3 mars 2019 à 14:22
3 mars 2019 à 14:22
bonjour,
le compilateur ne m'a signaler aucune erreur
le compilateur ne m'a signaler aucune erreur
[Dal]
Messages postés
6174
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
2 février 2024
1 083
Modifié le 4 mars 2019 à 12:47
Modifié le 4 mars 2019 à 12:47
Salut Apprenant.3,
Ton code compile car il ne comporte pas d'erreurs de syntaxe, mais si tu compiles avec les warnings, un compilateur comme gcc va te signaler des comportements anormaux, qui dans la quasi-totalité des cas, sont des erreurs de programmation.
En l'occurrence, ton programme génère les avertissements suivants avec gcc 6.3.0 et les options de compilation
Outre les observations de Dalfab (que tu devrais prendre en compte), tu devrais corriger la fonction
- d'abord détermine c3 à partir du contenu de c1 et de la position saisie
- ensuite concatène c3 et c2
Le résultat de cette concaténation devrait être dans une autre variable, que tu as dénommée
Dal
Ton code compile car il ne comporte pas d'erreurs de syntaxe, mais si tu compiles avec les warnings, un compilateur comme gcc va te signaler des comportements anormaux, qui dans la quasi-totalité des cas, sont des erreurs de programmation.
En l'occurrence, ton programme génère les avertissements suivants avec gcc 6.3.0 et les options de compilation
-Wall(warnings all) :
$ gcc -Wall 35898007.c
35898007.c: In function ‘saisie’:
35898007.c:8:2: warning: implicit declaration of function ‘gets’ [-Wimplicit-function-declaration]
gets(c1);
^~~~
35898007.c: In function ‘concat’:
35898007.c:20:8: warning: assignment makes integer from pointer without a cast [-Wint-conversion]
c3[i]=strcat(c3,c2);
^
35898007.c:14:10: warning: variable ‘n’ set but not used [-Wunused-but-set-variable]
int p,i,n;
^
/tmp/ccVOcyZp.o : Dans la fonction « saisie » :
35898007.c:(.text+0x2b): avertissement : the `gets' function is dangerous and should not be used.
Outre les observations de Dalfab (que tu devrais prendre en compte), tu devrais corriger la fonction
concat()en supprimant tout à partir de la ligne 17 et décomposer les problèmes :
- d'abord détermine c3 à partir du contenu de c1 et de la position saisie
- ensuite concatène c3 et c2
Le résultat de cette concaténation devrait être dans une autre variable, que tu as dénommée
chrssi je comprends bien ton intention en lisant ton printf final. Cependant, ton code actuel ne modifie pas du tout le contenu de
chrset donc lorsque tu tentes d'afficher le contenu de cette variable, tu n'as pas ce que tu devrais.
Dal
3 mars 2019 à 14:19
il ne m'a envoyé aucune erreur, mais la fonction concat ne marche pas lors de la compilation
3 mars 2019 à 14:21
3 mars 2019 à 14:35
3 mars 2019 à 14:51
as-tu essayé d'afficher ch1 et ch2?