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 6200 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 7 janvier 2025 - 4 mars 2019 à 12:37
[Dal] Messages postés 6200 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 7 janvier 2025 - 4 mars 2019 à 12:37
A voir également:
- Chaine de caractere
- Caractère ascii - Guide
- Caractere speciaux - Guide
- Caractère spéciaux - Guide
- Chaine tnt gratuite sur mobile - Guide
- Plus de chaine tv - Guide
3 réponses
yg_be
Messages postés
23421
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
12 janvier 2025
Ambassadeur
1 557
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
6200
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
7 janvier 2025
1 097
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?