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

Programme C qui affiche les caractères saisis par l'utilisateur - C - Programmation

Marsh Posté le 04-05-2014 à 14:07:48    

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 :

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 . :)

Reply

Marsh Posté le 04-05-2014 à 14:07:48   

Reply

Marsh Posté le 06-05-2014 à 11:34:08    

Bonjour,

 

La fonction strcpy demande une pointeur sur char et non un char ton soucis viens donc de là.

 

Il te suffit donc de lui passer &T[i] pour que ce problème ce résolve.

 

Ensuite tu as un petit soucis avec ta boucle do/while... Elle boucle à l'infini.

Message cité 1 fois
Message édité par OrcusZ le 06-05-2014 à 11:35:58

---------------
Made you your own sentence without believing that of the others...
Reply

Marsh Posté le 06-05-2014 à 12:07:13    

OrcusZ a écrit :

Bonjour,
La fonction strcpy demande une pointeur sur char et non un char ton soucis viens donc de là.


Plus qu'un pointeur sur char, elle demande à ce que le pointeur sur char appartienne à une chaine A Zéro Terminal! Si cela n'est pas le cas, il peut y avoir segfault / comportement aléatoire!
Or &T[i] n'est pas un pointeur vers une chaine de caractère au sens C du terme...


---------------
Seul Google le sait...
Reply

Marsh Posté le 06-05-2014 à 17:24:27    

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 :
 

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


 
Merci Pour Voter aide :)

Reply

Marsh Posté le 07-05-2014 à 12:01:31    

Vu ce code  (qui ne fait certainement pas ce que tu crois) c'est pas une surprise:
getchar ( )  ;  
scanf ("%c",&T[i]) ;  
 
Remplaces ton getchar() par un fflush(stdout) si tu veux écrire à l'écran sans retour à la ligne.
 
il y a deux autres erreurs qui sautent aux yeux dans ton code.
Une dans ce code ci:
if ( T[i]=='0' )
     strcpy( &T[i], " " ) ;
else
    i=i+1 ;            
}      
while ( T[i] != '.' ) ;
 
et une dans ce code la:
for (i=0 ; i<='.' ; i++)
 
A+,


Message édité par gilou le 07-05-2014 à 12:06:06

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed