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 :

ajout d'espaces : chaine de caractère


Sujet :

C

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 4
    Par défaut ajout d'espaces : chaine de caractère
    bonjour

    Voici un un morceau de code qui réorganise une chaine de caractères(numéro de téléphone) en ajoutant des espaces s'il n'y en a pas.
    ex : 12345678 : 12 34 56 78 // 123456789 : 1 23 45 67 89( chaine impaire).

    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
     
    char * ret;
       int n = strlen(chaine);
       int i,j;
       int compteur;
     
       ret=malloc(sizeof(*ret) * (n + n / 2 + 1));
     
       compteur = n % 2;
       for(j=0, i=0;chaine[i]; i++, j++)
       {
          ret[j] = chaine[i];
          compteur++;
          if (compteur == 2)
          {
              compteur = 0;
              ret[j+1] = '-';
              j++;
          }
       }
       ret[j-1] = '\0';
    ici c'est toute la chaine qui est modifiée.

    je voudrai maintenant pouvoir modifier la chaine si une sous chaine(entre les espaces) dépasse 4 caractères:
    01 45345 123 1234 : 01 4 53 45 123 1234 (sous chaine paire)

    01 12 345673 1234 : 01 12 34 56 73 1234 (sous chaine impaire)

    j'espere avoir été assez clair. avez vous des suggestions?
    merci

  2. #2
    Invité
    Invité(e)
    Par défaut
    A première vue je dirai qu'il faut que tu fasses une boucle à l'intérieur de celle dont tu te sers actuellement.

    Dans cette nouvelle boucle, tu effectues une recherche après le dernier espace rencontré et jusqu'au prochain espace (ou autre caractère si la chaine est mal formé, point par exemple).
    Entre ces deux espaces tu comptes le nombre de caractère que tu as. Si tu en as plus que deux alors tu repositionne ton compteur au premier espace et tu découpes ta chaîne comme tu le désires.

Discussions similaires

  1. ajouter des espaces à une chaine de caractères
    Par tricette dans le forum Shell et commandes POSIX
    Réponses: 8
    Dernier message: 28/09/2012, 13h09
  2. Réponses: 18
    Dernier message: 27/06/2006, 18h37
  3. [String] Ajouter des espaces à une chaine
    Par jake84 dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 13/02/2006, 16h56
  4. Espace insécable dans une chaine de caractères
    Par Mors_Ubyte dans le forum Access
    Réponses: 1
    Dernier message: 11/02/2006, 21h43
  5. Réponses: 2
    Dernier message: 06/12/2002, 07h50

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