CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

C: chaines de caractères

Scullder
Scullder
Niveau 10
07 juin 2004 à 16:27:16

Voilà, je débute en C, et je me suis dit que pour me faire la main sur les chaines de caractère, ce serait sympa de faire un petit programme :-d
Ce petit programme que fait-il ?
Alors en fait, c´est un espèce de brute force.
On l´utilise en ligne de commande par exemple comme ceci
bf.exe --test youhou --lenght 20

le programme va devoir retrouver la chaine youhou en générant toutes les chaines possibles. 20 est le nombre de caractère maximum de cette chaine possible.
Bon d´accord ça sert à rien et même si on voudrait s´en servir, ça serait débile, mais c´est pour apprendre ^^
Donc, déjà j´ai réussi à récupérer les options passées au programme, et à convertir la valeur 20 de char à int :-d
Maintenant, mon problème arrive, je me perd vraiment dans les pointeurs demandés par ci par là ( je ne sais pas pourquoi) et j´obtient lors de la compilation les erreurs suivantes :

bforce.c: In function `brute_force´:
bforce.c:14: warning: passing arg 2 of `strcat´ makes pointer from integer without a cast
bforce.c:18: warning: passing arg 2 of `strcmp´ makes pointer from integer without a cast
bforce.c:23: parse error before `char´

J´ai un peu de mal à les déchiffrer et c´est pas faute d´avoir essayer.
La source de ce programme est ici : http://membres.lycos.fr/scullder/bforce.c
Je vous serai franchement très reconnaissant si vous pourriez m´aider ou juste me donner une bonne adresse qui pourrait m´aider ; )
Merci d´avance.

JeanYvesYves
JeanYvesYves
Niveau 10
07 juin 2004 à 16:41:18

En gros, tu veux retrouver dans une grande chaine ou commence la sous-chaine ?

  1. include < string.h>

char* strstr(char*,char*);

ça existe déja :)

sinon, si tu veux la reprogrammer, dis moi ou tu coinces !

Scullder
Scullder
Niveau 10
07 juin 2004 à 17:02:40

euuh, non, en gros, je veux générer toutes les chaines possibles jusqu´à retrouver la chaine passée en option en ligne de commande.
( mais merci de l´info quand même ^^)

dnob700
dnob700
Niveau 10
07 juin 2004 à 17:45:26

un peu a coté, mais n´eesaye pas avec 20, mais avec 5 ou 6 maximum...

Générer toutes les chaines de 20 caractères te prendra plus d´un siècle ( voir même plus).

Kelios
Kelios
Niveau 8
07 juin 2004 à 23:18:27

S´il ne prend en compte que les 26 caractères en minuscules, ça donne déjà:
26^20=19 928 148 895 209 409 152 340 197 376 chaines possibles.
Mais bien sur, si on y ajoute des majuscules des chiffre, et tout le reste, en fait, si on y met tout le Extended ASCII Charset, on se retrouve avec:
plus de
1,461 501 637 330 902 918 203 684 832 716 3x10^48 possibilités, ce qui correspond, si tu aime voir le chiffre au complet,
1 461 501 637 330 902 918 203 684 832 716 300 000 000 000 000 000 possibilités environ ( les zéros sont dus à un manque de précision, il y en a plus que ça en fait).
Et ça, c´est pour seulement 20 caractères :)
Tu veux toujours continuer à le faire? ; )

Kelios
---------

Altonfrere
Altonfrere
Niveau 10
08 juin 2004 à 01:10:49

sans compter les chaines de longueur < 20 :)

Scullder
Scullder
Niveau 10
08 juin 2004 à 02:19:20

-_- bah évidemment que je veux continuer à le faire, le 20 c´était juste pr le test.
Ce que je veux savoir, c´est où sont mes erreurs et pas que c´est impossible parceque c´est trop long ( suffirait de mettre 3 caractères pr tester).
En fait dans mes problèmes, y´a la déclaration de chaines de caractère dans les arguments de la fonction brute_force qui est louche et l´utilisation de mes variables de type chaine de caractères un peu en général je pense.

dnob700
dnob700
Niveau 10
08 juin 2004 à 10:28:25

juste au passage,
existe-t-il un équivalent C++ à la fonction sprintf() ?

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de Jeux
  • Programmation
  • Création de sites web
  • Linux
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment