Se connecter / S'enregistrer

Résolu Programme C qui affiche les caractères saisis par l'utilisateur

Solutions (3)
Tags :
  • Programme
|
Salut tous le monde . J'ai Essayer De Répondre à cet Exercice en utilisant un tableau des caractères, Mais J'ai un petit soucie en ce qui concerne la fonction "strcpy" . Un Msg D'erreur Est afficher au-dessous du Code, voila le Code :


  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. main ( )
  5. {
  6. char T[101] ; int i ;
  7. do
  8. {
  9. for (i=0 ; i<=99 ; i++)
  10. {
  11. printf (" Veuillez Entrer Le %i Caractere : ",i) ;
  12. getchar ( ) ;
  13. scanf ("%c",&T[i]) ;
  14. if ( T[i]=='0' )
  15. strcpy(T[i]," ") ;
  16. }
  17. }
  18. while ( T[i] != '.' ) ;
  19. printf (" Votre Phrase Est : \n ") ;
  20. for (i=0 ; i<=99 ; i++)
  21. printf (" %c ",T[i]) ;
  22. system (" pause ");
  23. }


Et Voilà L'erreur :
[Error] invalid conversion from 'char' to 'char*' [-fpermissive] la ligne : 15

Merci Pour votre intérêt et votre aide . :) 
Contenus similaires
Meilleure solution
partage
, Vieux c*n psychorigide |
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. void affiche(char * chaine);
  5. int main()
  6. {
  7. char T[101] ; int i = 0, end = 0;
  8. for(i = 0; (i < 101) && (end == 0); i++){
  9. printf("Caractere [%d] :", i);
  10. T[i] = getchar();
  11. if(T[i] == '0')
  12. T[i] = ' ';
  13. if(T[i] == '.'){
  14. T[i+1] = '\0';
  15. end = 1;
  16. int c ;
  17. printf("%s", T);
  18. }
  19. }
  20. system (" pause ");
  21. }


ça veut pas afficher la phrase sur la même ligne :o  pis ça prends plusieurs caractères à la fois :o  mais ça compile et fonctionne sinon
  • CRicky a sélectionné cette solution comme la meilleure réponse
  • Commenter cette solution |
Score
0
òh
òi
|
Re.
J'ai Essayer D'utiliser seulement la boucle do ==> while ( T!='.' ) mais ça na jamais résolu le problèmme, car la boucle ne s'arrête pas quand je saisie un point. voilà le code :

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. main ( )
  5. {
  6. char T[101] ; int i=0 ;
  7.  
  8. do
  9. {
  10. printf (" Veuillez Entrer Le %i Caractere : ",i+1) ;
  11. getchar ( ) ;
  12. scanf ("%c",&T[i]) ;
  13. if ( T[i]=='0' )
  14. strcpy( &T[i]," " ) ;
  15. else
  16. i=i+1 ;
  17. }
  18. while ( T[i]!='.' ) ;
  19. printf (" \n Votre Phrase Est : \n ") ;
  20. for (i=0 ; i<='.' ; i++)
  21. printf (" %c ",T[i]) ;
  22. system (" pause ");
  23. }
  • Commenter cette réponse |
Score
0
òh
òi
|
T est ton tableau de caractères, c'est-à-dire l'adresse sur le premier caractère.
En prenant T[ i ], tu récupères la valeur dans le tableau donc le caractère, mais c'est seulement la valeur, pas sa position en mémoire.
Tu veux modifier le contenu du tableau sur le ième élément. Donc, il te faut fournir la position à la fonction strcpy, c'est-à-dire une adresse.
C'est comme pour le scanf, pour indiquer la position en mémoire où tu veux qu'il modifie la valeur, tu dois fournir l'adresse et pas la valeur.
Donc l'adresse de ton ième caractère est &T[ i ] ou T+i
  • CRicky a édité ce message
  • Commenter cette réponse |

Ce n'est pas ce que vous cherchiez ?

Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS