IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

effacer les espaces dans chaine de caracteres


Sujet :

C

  1. #1
    Membre à l'essai
    Inscrit en
    Décembre 2008
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 16
    Points : 12
    Points
    12
    Par défaut effacer les espaces dans chaine de caracteres
    bonjour

    j'ai essaye avec ce code d'enlever les espaces dans une chaine mais il ne fonctionne 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 <string.h>
    int main ()
    {
      char h[30];
      int nb,i,j;
      printf("donner une chaine de caractere n");
      scanf("%s",h);
      nb=strlen(h);
      for(i=0;i<=nb;i++)
      {
         if(h[i]==' ')
         {
            for(j=i;j<=nb;j++)
           { 
              h[j]=h[j+1];
           }
        } 
      }
    printf("le nouveau chaine %s",h);
    }

  2. #2
    Expert éminent sénior
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Points : 13 926
    Points
    13 926
    Par défaut
    scanf("%s",h); ne permet pas de lire les blancs : elle saute les blancs qui précèdent et s'arrête de lire lorsqu'elle trouve un blanc qui suit.
    Utilise plutôt la fonction fgets (sur stdin) qui lit une ligne complète (y compris le \n)

  3. #3
    Membre émérite Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Points : 2 280
    Points
    2 280

  4. #4
    Membre éprouvé Avatar de orfix
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 707
    Points : 1 132
    Points
    1 132
    Par défaut
    Ton algorithme n'est pas tout à fait correcte, car tu débordes en copiant tes éléments
    et tu ne traites pas le cas où ta chaîne contient plusieurs espaces de suite ...

    Bon courage.

  5. #5
    Membre averti Avatar de elmcherqui
    Profil pro
    Inscrit en
    Février 2008
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Maroc

    Informations forums :
    Inscription : Février 2008
    Messages : 281
    Points : 382
    Points
    382
    Par défaut
    bonsoir,voila un code pour te depanner si tu ne pas encore trouvé
    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
    #include<stdio.h>
    #include<string.h>
     
    int main ()
    {   unsigned int i=0,j=0;
        char texte[30],new_texte[30];
     
        fgets(texte,30,stdin);
        for(i=0;i<=strlen(texte);i++){
            if(texte[i]==' ')
                continue;
            new_texte[j++]=texte[i];
        }
        new_texte[j]='\0';
        puts(new_texte);
     
        return 0;
    }

Discussions similaires

  1. Eliminer les espaces dans une chaine de caractere
    Par sialafrere dans le forum WinDev
    Réponses: 2
    Dernier message: 02/05/2008, 21h42
  2. Réponses: 9
    Dernier message: 06/11/2007, 12h36
  3. Supprimer les espaces dans une chaine de caractères
    Par arnaudperfect dans le forum Shell et commandes GNU
    Réponses: 13
    Dernier message: 23/07/2007, 22h24
  4. Effacer les espaces dans une chaîne de caractères
    Par JohnnyWalk dans le forum Débuter avec Java
    Réponses: 16
    Dernier message: 19/07/2007, 14h13
  5. [VBA]effacer les espaces à ralonge dans des cellules
    Par repié dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 26/01/2006, 11h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo