[C] Remplacer les caracteres vides

ayhan -  
lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   -
Bonjour

J'essaie de remplacer les caracteres vides par un autre caractere.
voici ma source:

#include <stdio.h>

int main()
{
char un_caractere;
char filtre = ' ';
while(un_caractere != '\n')
{
scanf("%c", &un_caractere);
if(un_caractere == ' ')
printf("_");
printf("%c", un_caractere);
}
return 0;
}

et voici le résultat que je veux avoir :

- l'utilasateur rentre une phrase
Comment ca marche ?
- en sortie je dois avoir
Comment_ca_marche_?

MAIS j'ai autre chose à la place

Comment_ ca_ marche_ ?
Configuration: Windows XP
Firefox 2.0.0.3

3 réponses

  1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    Hello

    if(un_caractere == ' ')
    printf("_");
    else
    printf("%c", un_caractere);
    0
  2. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Salut,

    que comprends tu par caractère vide?!
    Puisque tu n'as que 3 choix
    - une foix lancer ton programme t'attends une coupure de courant
    - tu tapes Enter directement (donc tu as un '\n')
    - tu tapes un caractère (à savoir que l'espace est un caractère comme les autres)

    Il n'y a pas de caractère vide.
    0
  3. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Tu peux faire comme ça par exemple
    lami20j@debian:~/trash$ cat ccm.c
    #include <stdio.h>
    
    int main ()
    {
      int c;
      while ((c = getchar ()) != EOF){
          if (c == ' ')
            printf ("_");
          else
            putchar (c);
      }
      return 0;
    }
    lami20j@debian:~/trash$ ./ccm
    comment ça marche ?
    comment_ça_marche_?
    
    0