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