Tableau

[Résolu]
Signaler
Messages postés
50
Date d'inscription
mercredi 20 juillet 2005
Statut
Membre
Dernière intervention
22 mai 2006
-
Messages postés
50
Date d'inscription
mercredi 20 juillet 2005
Statut
Membre
Dernière intervention
22 mai 2006
-
Bonjour,
g besoin de retirer d'un buffer sBuf une chaine de caracteres ki vient juste apres le mot Subject: et avant le retour de chariot et de la placer ds un autre buffer Subject.
Comment dois-je proceder, voila ce ke g fait mais ca ne marche pas, vous pouvez me dire ou st mes erreurs?
merci.

char subject[1024];
char sBuf [1024];
int j = 0;
int k = 0;



if (memcmp(&sBuf[k], "Subject: ", 9) == 0) //ds sBuf, je detecte le mot "Subject:"

while (sBuf[k] != '\r\n') //\r\n equivaut au retour de chariot en socketing
{
Subject[j] = sBuf[k]; // le contenu de subject recoit le contenu de sBuf
j++;
k++;
}

printf ("le sujet du mail est %s", &Subject[0]);//imprimer le contenu de Subject.

7 réponses

Messages postés
371
Date d'inscription
dimanche 4 janvier 2004
Statut
Membre
Dernière intervention
23 septembre 2009

Une bonne tranche de C++ ne fera pas de mal ici....

#include<string>
#include
using namespace std;

struct extraction_impossible {};

string extraction( string message ) throw ( extraction_impossible )
{
string const debut = "Subject:";
string::size_type marqueur1 = message.find( debut );
string const fin = "\r\n";
string::size_type marqueur2 = message.find( fin );
if( marqueur1 > marqueur2 || marqueur1 string::npos || marqueur2 string::npos )
throw extraction_impossible();
return message.substr( marqueur1+debut.size(), marqueur2-marqueur1-debut.size() );
}

int main()
{
try
{
cout << "Resultat de l'extraction :" << extraction( "Subject:-Bonjour!!!-\r\n" ) << "." << endl;
}
catch ( extraction_impossible const & exception )
{
cout << "Extraction impossible!!!" << endl;
}
}
Messages postés
15154
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
19 octobre 2021
99
char * debut;
char source[50]="string test: blabla";

debut=strstr(source,"test");

Avec cette fonction, tu as un pointeur sur la première occurence de la chaine à chercher ("test" ici). Ensuite, c'est juste une manipulation de chaine:

strcpy(dest,debut+offset);

Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Messages postés
198
Date d'inscription
vendredi 4 avril 2003
Statut
Membre
Dernière intervention
18 mars 2011
1
//------------------------------------------------------
// Fonction de recheche
//------------------------------------------------------
// message est le contenu du message obtenu avec RETR ou TOP
// champs est le champs à récupérer dans le message
// resultat contiendra le résultat de la recherche
//------------------------------------------------------
int Cherche(char *message, char *champs, char *resultat)
{
int i;
char *p = (char *)strstr(message, champs);

if(p)
{
p += strlen(champs);

for(i = 0; *p != '\n'; i++)
resultat[i] = *p++;

resultat[i] = '\0';
return 1;
}

*resultat = '\0';
return 0;
}

//------------------------------------------------------
// Exemples d'utilisation:
//------------------------------------------------------
char message[???];
char resultat[128];

if(Cherche(message, "From: ", resultat))
printf("\nExpediteur: %s\n", resultat);

Cherche(message, "Subject: ", resultat))
printf("\nSujet: %s\n", resultat);

// Voir ici:
Messages postés
198
Date d'inscription
vendredi 4 avril 2003
Statut
Membre
Dernière intervention
18 mars 2011
1
Messages postés
50
Date d'inscription
mercredi 20 juillet 2005
Statut
Membre
Dernière intervention
22 mai 2006

salut magam, ta fonction me semble etre efficace mais le probleme est ke je n'ai pas le resultat ki s'imprime.


G juste Sujet: ki s'affiche a l'ecran.
et si je veux k'il m'affiche la chaine depuis Subject: jusk'a la detection du retour de chariot equivalent a "\r\n" en socketing, ke dois-je faire?


merci pr ton aide.
Messages postés
50
Date d'inscription
mercredi 20 juillet 2005
Statut
Membre
Dernière intervention
22 mai 2006

Excuse-moi, j'avais fait une petite erreur, il affiche bien ce ki vient apres Subject: mais comment je peux faire pr k'il n'imprime ke ce ki vient apres Subject et avant le retour de chariot (\r\n)?

merci
Messages postés
50
Date d'inscription
mercredi 20 juillet 2005
Statut
Membre
Dernière intervention
22 mai 2006

xterminate, merci bocou ca marche!!!