Changer une chaine de carcatere avec C

m_makhoukh Messages postés 114 Date d'inscription   Statut Membre Dernière intervention   -  
m_makhoukh Messages postés 114 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour ttle monde:

j'ai besoin de vous car je bloc sur un truc depuis trois jour .
en fait hj'ai besoin de remplacer un mot(le mot"null") par un espaceou 0 et pour cela j'utilise C.

mais je n'arrive pas avec ce boiut de code car j'essaye de lire ligne pa ligne et d extraire les mots de la ligne avec (sscanf) mais il m'extrait que la premiere chaine de caractere et donc il parcours pas toute la ligne.
char ligne[256];
   char  Ch[200];
   char ch1[200];
   char ch2[200];
   char ch3[5];
   strcpy(ch3,"null");
   char chaine3[4] ;
   strcpy(chaine3, "oui");
   char chaine[200];
   int egal ;
   FILE *f ;
   FILE * fichier2;
   strcpy(ch1,"C:/essai.txt");
   strcpy(ch2,"C:/commandes3.CSV");
   fichier2=fopen(ch2,"w");

   /* = fopen( "C:/commandes2.CSV", "rt" );  ouvre en lecture */
   if ((f= fopen( ch1, "rt" ))==NULL) {
     printf("erreur ouverture\n");
     return 1;        /* sort du programme (code erreur 1) */
   }
  
 else

while(!feof(f)||egal==0)
 {
int longligne=0;
int i=0;
char c;

char lign[200];                         
 fgets(ligne,255,f);
 
 printf("la ligne est:");
 printf(ligne,"\n");
 
 sscanf(ligne,"%s",chaine);
 printf("la chaine est:\n");
 printf(chaine,"\n");

 if(strcmp(chaine,ch3)==0)
 {
 fprintf(fichier2,"%s",chaine3);
 /*printf(ligne);*/
egal=0;
 }
 else
 {
 fprintf(fichier2,"%s",ligne);
egal=1;
 }
 }
 }
A voir également:

2 réponses

Timon1102 Messages postés 354 Date d'inscription   Statut Membre Dernière intervention   109
 
sscanf(ligne,"%s",chaine);
ne lit qu'un mot, c'est ce que tu demandes !

Si tu veux lire une ligne depuis un fichier, de memoire je crois qu'il y a une fonction fgetline... ou qq chose comme ca.
0
m_makhoukh Messages postés 114 Date d'inscription   Statut Membre Dernière intervention   2
 
je veux lire la ligne ensuite chaque mot de la ligne.

merci
0