C++

C++ - Programmation

Marsh Posté le 28-11-2001 à 19:19:23    

Re bonjour,
 
Dans mon programme, j'ai un .txt qui contient une suite de nombres (ex: 1234567890). D'autre part j'ai une chaine ne caractère char (ex: 4567). Je dois trouver un moyen de vérifier si la chaine de caractère 4567 existe dans la suite de nombre contenue dans le .txt.
Donc je récupère la chaine de caractère contenue dans le .txt puis il faut que je "compare" les 2. Quelqu'un a-t-il une idée d'un algorithme pour faire ce genre de travail?
 
Et ce que j'ai été clair ? Pas sur...Si vous ne comprenez pas j'essairai d'être plus claire
 
Merci

Reply

Marsh Posté le 28-11-2001 à 19:19:23   

Reply

Marsh Posté le 28-11-2001 à 19:26:27    

Comment tu stocks ta suite de chiffre dans le fichiers ?
(Pq tu sauverais pas dans le fichier ta suite de chiffres comme texte ?)


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
Reply

Marsh Posté le 28-11-2001 à 22:30:28    

voui tu peux reexpliquer s'il te plait ? pour moi c plutot confus

Reply

Marsh Posté le 28-11-2001 à 22:58:13    

ca sent la récursivité...

Reply

Marsh Posté le 29-11-2001 à 09:56:41    

Effectivement je pense qu'il y a de la récursivité la dessous...
Je vais essayer de ré-expliquer en simplifiant mon pb.
J'ai 2 chaines de caractères :
char ch1[10]="123456789"
char ch2[4]="456"
 
J'aimerai trouver un algorithme efficace qui me dise si la chaine 2 (ch2) est contenue dans la chaine 1 (ch1). Dans cette exemple je veux que l'algo vérifi si "456" est bien contenu dans la chaine 1...
 
J'espère avoir été un peu plus clair ;)

Reply

Marsh Posté le 29-11-2001 à 10:06:07    

roh oui, OK
 
bon, la brute force devrait marcher, meme si c trop pas beau :
 

Code :
  1. BOOL compare(char *ch1, char *ch2)
  2. {
  3. for (int i=0;i<strlen(ch1)-strlen(ch2);i++)
  4. {
  5. if (strncpy(ch1 + i,ch2,strlen(ch2)) == 0)
  6.    return TRUE;
  7. }
  8. return FALSE;
  9. }


 
Efficace (dans le sens rapide), ca ne l'est pas . par contre :
 
http://www.flipcode.com/cgi-bin/ms [...] cotd&id=-1
 
devrait deja plus l'etre

 

[edtdd]--Message édité par chrisbk--[/edtdd]

Reply

Marsh Posté le 29-11-2001 à 10:25:33    

Fonction du C : strstr() ? Ca irait pas ?

Reply

Marsh Posté le 29-11-2001 à 10:39:02    

les string stl le fond...

Reply

Marsh Posté le 30-11-2001 à 12:50:15    

Effectivement strstr le fait très bien. Merci.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed