Supprimer les espaces dans une chaine de caractères

Résolu
marthymbiz Messages postés 8 Date d'inscription mercredi 18 février 2009 Statut Membre Dernière intervention 20 mars 2009 - Modifié le 6 nov. 2019 à 20:34
marthymbiz Messages postés 8 Date d'inscription mercredi 18 février 2009 Statut Membre Dernière intervention 20 mars 2009 - 16 mars 2009 à 22:13
Salut,
Je débute en programmation C et j'utilise Borland C++ comme compilateur.
je voudrais créer un programme C permettant de supprimer les espaces contenus dans une chaine de caractères :
voici mon code :
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void suprEspace(char expr);
void main()
{char expr[255];
 printf("Donnez l'expression : ");
 gets(expr);
 suprEspace(expr);
 puts(expr);
}

void suprEspace(char expr)
{int i,j,n;
n=strlen(*expr);
for (i=0;i>n;i++)
  if (*expr[i]==' ')
                   {
                    for(j=i;j>(n-1);j++)
                     *expr[j]=*expr[j+1];
                   }
}


lors de la compilation borland m'affiche que j'ai 7 erreurs qui sont surement dus a une mauvaises manipulation des pointeurs et des chaines de caractères alors si quelqu'un peut me proposer une solution ça serai vraiment très cool
merci d'avance

5 réponses

Pistol_Pete Messages postés 1054 Date d'inscription samedi 2 octobre 2004 Statut Membre Dernière intervention 9 juillet 2013 7
Modifié le 6 nov. 2019 à 20:35
Salut
Effectivement les pointeurs sont à revoir.

void suprEspace(char *expr, char *res)
{
  char *P=expr,*Q=res;
  while(*P!='\0'){
    if(*P!=' '){
      *Q=*P;
      Q++;
    }
    P++;
  }
  *Q=0;
}


A+
____________________________________________________________________________
Mon site internet :  
0