1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
|
char* supprime (const char *src)
{
char *dest = NULL, *res;
int n = strlen (src);
int i, dansunmot, j = 0;
dest = malloc (n+1);
if(dest == NULL)
{
return NULL;
}
/* Cherche le premier non espace */
i = 0;
while ((i < n) && (src[i] == ' '))
{
i++;
}
/* On est dans un mot */
dansunmot = 1;
/* Jusqu'a la fin de la chaine */
while (i < n)
{
/* Si c'est un espace, on fait remarquer qu'on n'est plus dans un mot */
if (src[i] == ' ')
{
dansunmot = 0;
}
else
{
/* Si on n'est pas dans un mot, on met un espace */
if (dansunmot == 0)
{
dest[j]=' ';
j++;
}
/* On est dans un mot */
dansunmot = 1;
/* On copie la lettre */
dest[j] = src[i];
/* On incremente l'indice de destination */
j++;
}
/* On incremente l'indice de la source */
i++;
}
/* Mettre le '\0' a la fin */
dest[j] = '\0';
j++;
/* On realloue pour avoir la bonne taille */
res = realloc (dest, j);
if (res)
{
return res;
}
else
{
return dest;
}
} |
Partager