Bonjour à tou(te)s,
le programme qui pose problème est destiné à lire une ligne de texte en entrée, et à remplacer tous les espaces que celle-ci peut eventuellement contenir par "_". Mon bout de code, et après je vous explique ce qui ne va pas:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
#include <stdio.h>
#include <stdlib.h>
 
int main()
{
   char caractereLu = ' ';
   long phrase = 0;
   scanf("%ld", &phrase);
 
   while(caractereLu != '\n')
   {
       scanf("%c", &caractereLu);
         if(caractereLu != ' ')
            printf("%c", caractereLu);
         else
           printf("_");
   }
 
   return 0;
}
Lorsque la ligne de texte est "ceci est un exemple" j'obtiens bien en sortie "ceci_est_un_exemple" mais lorsque la ligne de texte est "0 1 2 3 4" j'obtiens "_1_2_3_4", pourquoi le 0 est ignoré? Il n'est pas considéré comme un espace? Ce serait pourtant le seul cas qui expliquerait cette sortie "imprévue".
Merci à ceux qui passent par là!