Problème de chaine

Résolu
goutbouyo Messages postés 429 Date d'inscription mardi 6 juillet 2004 Statut Membre Dernière intervention 12 janvier 2008 - 27 mars 2005 à 11:49
goutbouyo Messages postés 429 Date d'inscription mardi 6 juillet 2004 Statut Membre Dernière intervention 12 janvier 2008 - 29 mars 2005 à 13:33
Salut,

Je fais ça pour supprimer les 3 premiers caractères et le dernier d'une chaine LIGNE :

char *c = ligne;
c+=3;
while (*c!='"')
{
c++;
count++;
}
c=ligne;
c+=3;
strncpy(ligne,c,count);

Mais à la fin j'obtiens bien ma chaine tronquée, mais elle contient également à la suite des caractères du départ .
exemple:

avant traitement : 000machaine1
après traitement : machaineaine

Comment faut il faire pour "effacer" la chaine avant d'y recopier le texte voulue SVP ???

2 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
27 mars 2005 à 12:11
void myfunc(char *ligne)
{
char *c=ligne, *d;
DWORD count=0;
while(*c) {
c++;
if(++count >=3) break;
}
if(c==ligne) return; // CHAINE VIDE
d = ligne;
while(*d = *c) {
d++; c++;
}
if(d>ligne) *(d-1) = 0;
}

Fait en un seul parcours.

ciao...
BruNews, MVP VC++
3
goutbouyo Messages postés 429 Date d'inscription mardi 6 juillet 2004 Statut Membre Dernière intervention 12 janvier 2008
29 mars 2005 à 13:33
Merci Brunews !!!


Toujours là quand on a besoin d'aide
0
Rejoignez-nous