[C] Remplacer les caracteres vides

Fermé
ayhan - 9 avril 2007 à 15:57
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 9 avril 2007 à 18:42
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_ ?
A voir également:

3 réponses

dubcek Messages postés 18724 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 15 mai 2024 5 615
9 avril 2007 à 16:40
Hello

if(un_caractere == ' ')
printf("_");
else
printf("%c", un_caractere);
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
9 avril 2007 à 18:30
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
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
9 avril 2007 à 18:42
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