Concaténation...........

moloko2000 Messages postés 16 Date d'inscription mardi 5 août 2003 Statut Membre Dernière intervention 26 août 2003 - 20 août 2003 à 09:37
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 20 août 2003 à 10:14
Lorsque je concatène une chaine de caractère avec strcat

par exemple:
strcat(retour_search,temp );

retour_search à la valeur suivante:

????????????????????????????????????????????????????????????????????????????????
????????????????????????????????????????????????????????????????????????????????
????????????????????????????????????????²²²²81072 1 DURAND
HENRI 1400895652001 19400802

Comment supprimer les premiers caractères bidons:
????????????????????????????????

Je veux uniquement conserver ce qui suit:

81072 1 DURAND
HENRI 1400895652001 19400802

Extrait de code:

retour_search=(char*)malloc(sizeof(char)150*200);

temp=(char*)malloc(sizeof(char)100);

strcat(retour_search,"\r");
strcat(retour_search,"\t");
itoa(tab_res[i].s400id,temp,10); ///tab_res[i].s400id est un int
strcat(retour_search,temp);////retour search et temp sont des char*
////c'est à ce moment là qu'il me met des caractères bidons

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
20 août 2003 à 09:49
retour_search=(char*)malloc(150*200);
temp=(char*)malloc(100);
//strcat(retour_search,"\r"); // NON, ou est le ZERO pour strcat ???
retour_search[0] = '\r';
retour_search[1] = '\t';
ce qui suit irait bon mais inutile
itoa(tab_res[i].s400id,temp,10);
retour_search[2] = 0; // pour le strcat suivant
strcat(retour_search,temp);

maintenant on fait mieux:
retour_search=(char*)malloc(150*200);
// suppression de temp
retour_search[0] = '\r';
retour_search[1] = '\t';
itoa(tab_res[i].s400id, retour_search + 2, 10);
// FINI !!!

BruNews, ciao...
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
20 août 2003 à 10:14
Donc concat en boucle, bien msieur.
char *rsearch=(char*)malloc(150*200);
char *c = rsearch;
for(i=0;i<nb_enr_retour;i++)
{*c++ '\r'; *c++ '\t';
itoa(tab_res[i].s400id, c, 10);
while(*c) c++; // va sur zero final
}
// FINI sans temp ni strcat !!!
BruNews, ciao...
0
Rejoignez-nous