Insertion de caractères en C

Fermé
mijad Messages postés 118 Date d'inscription mardi 21 novembre 2000 Statut Membre Dernière intervention 9 juillet 2024 - 17 janv. 2002 à 14:49
zebiloute Messages postés 105 Date d'inscription mardi 15 janvier 2002 Statut Membre Dernière intervention 14 avril 2005 - 17 janv. 2002 à 16:50
Bonjour,

J'essaye de résoudre un truc en C. Voilà, j'aimerais ajouter une suite de caractères dans une chaine en fonction du nombre de ce caractère trouvé dans la chaine.

Exemple : Dans la chaine "je vais à la plage", il y a quatre espaces. J'aimerais donc ajouter 4 espaces à la suite des espaces existants.

D'avance, merci et
@+
Michel
A voir également:

1 réponse

zebiloute Messages postés 105 Date d'inscription mardi 15 janvier 2002 Statut Membre Dernière intervention 14 avril 2005 4
17 janv. 2002 à 16:50
Ben

Tu fais une copie de la chaine ! (C2)

Tu scanes la chaîne de manière a trouver tes espaces
Une fois l'espace trouver, tu ajoutes quatre espace (caractère 32) à l'emplacement+1.
Tu recopies le contenue de la chaîne C2, à l'emplcement +1 dans la chaîne C1, à l'emplacement + 5.


char *C1, C2, tmpC;

memcpy(C2, C1);

tmpC = C1;

while(tmpC)
{
if(tmpC == 32) // un espace
{
tmpC++; // Passer au caractère suivant
C2++;

if(!tmpC) // Si fin de chaine
break;

memset(tmpC, 32, 4); // Attention y a pas de control de débordement ici
tmpc +=4;
memset(tmpC, 1, 0); // terminer la chaîne
strcat(tmpC, C2); // Completer avec le reste de la phrase.
}
else // Po sûr pour le else là
{
tmpC++; // On passe au caractère suivant.
C2++; // On passe au caractère suivant.
}
}



Je suis pas sûr que ça marche (po tester). Mais bon cela peut peu ête te donner une idée de la chose. Honnêtement c'est pas l'algo le plus pértinent mais il est bien détailé, sauf que l'on contrôl pas les débordement..

Tiens ça peut devenir un jeu sympa : TROUVER le code le plus court pour faire ce qui est demandé !!!!
0