Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1687 connectés 

  FORUM HardWare.fr
  Programmation
  C

  Formatage d'un caractère spécial dans une chaine

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Formatage d'un caractère spécial dans une chaine

n°938017
lolofora
Posté le 05-01-2005 à 15:56:54  profilanswer
 

:hello: lut !
 
J'ai créé 2 tableaux de chaines de caractères :
 

Code :
  1. char *tableau_salt[17]={ "ab","ff","gg","df","rr","fd","kl","az","fd","qd","mo","lf","ll","dl","qs","ss","$1$hXRCdBGR$"};
  2.   char *tableau_pass[17]={   "OCVNDtv/yN6","lFKIEgw8xYM","mooJaXH.zoQ","CidZGf9Q5ZU","ba7Vc.05X7w","MGX/u2USi3w","pnWcb2CQ0io","aoYAqkUliDk","tn.uHMEj3dE","htYUjVPHbxU","BRFuc.dBQxw","h7ZhxutNDw2","pY00Ogf9jlM","kdVlLYDkmDw","DmaN13yoFCQ","Mw5kpjXzR9w","XrQxg7maCz/7bV25VmqTz1"};


 
et lorsque que je les affiches, ils s'affichent bien tous... SAUF le tableau_pass[0] qui est vide...  :??:  :??:  
 
Cela vient-il du "/y" contenu dans la chaine qui pourrais avoir une signification particulière en C, si oui comment formater le caractère spécial "/" ??
 
Merci !

mood
Publicité
Posté le 05-01-2005 à 15:56:54  profilanswer
 

n°938024
lolofora
Posté le 05-01-2005 à 16:00:15  profilanswer
 

Ba en faite çà vien pa du "/y" vu que quand je met autre chose il y a le même problème...

n°938027
pains-aux-​raisins
Fatal error
Posté le 05-01-2005 à 16:01:57  profilanswer
 

Code :
  1. char montab[] = { ... }


 
edit : en const c'est même mieux si c'est constant évidemment.


Message édité par pains-aux-raisins le 05-01-2005 à 16:02:39
n°938039
Lam's
Profil: bas.
Posté le 05-01-2005 à 16:06:05  profilanswer
 

pains-aux-raisins a écrit :

Code :
  1. char montab[] = { ... }


 
edit : en const c'est même mieux si c'est constant évidemment.


Ptit coup de fatigue pains-aux-raisins ?  
Ou bien c'est ta touche étoile qui ne marche plus? ;)

n°938043
Lam's
Profil: bas.
Posté le 05-01-2005 à 16:06:58  profilanswer
 

lolofora a écrit :

Ba en faite çà vien pa du "/y" vu que quand je met autre chose il y a le même problème...


Ton truc me parraissait tellement gros, que j'ai essayé. Et chez moi, ça marche. C'est donc ton code d'affichage qui merde.
 
D'autre part, comme le dit pains-aux-raisins, c'est un tableau de "const char *"...

n°938047
lolofora
Posté le 05-01-2005 à 16:08:33  profilanswer
 

Ce n'est pas constant,
 
ton code retourne des erreurs "excess elements in char array initializer", il me semble que sans le étoile çà fait just un tacbleau de caractère et non un tableau de chaines de caractère enfin je crois ..

n°938053
Emmanuel D​elahaye
C is a sharp tool
Posté le 05-01-2005 à 16:12:24  profilanswer
 

lolofora a écrit :


J'ai créé 2 tableaux de chaines de caractères :
<...>
et lorsque que je les affiches, ils s'affichent bien tous... SAUF le tableau_pass[0] qui est vide...  :??:  :??:  


Aucun problème:


[ 0] 'ab                  ' 'OCVNDtv/yN6                   '
[ 1] 'ff                  ' 'lFKIEgw8xYM                   '
[ 2] 'gg                  ' 'mooJaXH.zoQ                   '
[ 3] 'df                  ' 'CidZGf9Q5ZU                   '
[ 4] 'rr                  ' 'ba7Vc.05X7w                   '
[ 5] 'fd                  ' 'MGX/u2USi3w                   '
[ 6] 'kl                  ' 'pnWcb2CQ0io                   '
[ 7] 'az                  ' 'aoYAqkUliDk                   '
[ 8] 'fd                  ' 'tn.uHMEj3dE                   '
[ 9] 'qd                  ' 'htYUjVPHbxU                   '
[10] 'mo                  ' 'BRFuc.dBQxw                   '
[11] 'lf                  ' 'h7ZhxutNDw2                   '
[12] 'll                  ' 'pY00Ogf9jlM                   '
[13] 'dl                  ' 'kdVlLYDkmDw                   '
[14] 'qs                  ' 'DmaN13yoFCQ                   '
[15] 'ss                  ' 'Mw5kpjXzR9w                   '
[16] '$1$hXRCdBGR$        ' 'XrQxg7maCz/7bV25VmqTz1        '


Montre ton code...


Message édité par Emmanuel Delahaye le 05-01-2005 à 16:14:28

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°938066
lolofora
Posté le 05-01-2005 à 16:18:05  profilanswer
 

Le test d'affichage :
 
 for(z=0;z<17;z++){
 
printf("test%d: crypt=%s sel=%s passwd=%s \n",z,motcrypte,tableau_salt[z],tableau_pass[z]);
 
}
 
résultat :
 
test0: crypt=fh sel=fh passwd=
mot testé: aaaababt avec le salt : ff donne en crypté: ff2IuIMo39Sfk
test1: crypt=fflFKIEgw8xYM sel=ff passwd=lFKIEgw8xYM
mot testé: aaaababt avec le salt : gg donne en crypté: ggvQzHnxxAGg6
 
le reste jusqu'à z=16 marche niquel
 
il y a juste le z=0 pr le tableau_pass qui ne marche pas grrrrrrr

n°938069
lolofora
Posté le 05-01-2005 à 16:19:12  profilanswer
 

çà doit être tout con mais là je sêche ...


Message édité par lolofora le 05-01-2005 à 16:19:28
n°938075
lolofora
Posté le 05-01-2005 à 16:20:54  profilanswer
 

il y avait çà aussi dans la boucle mais je pense pas que çà est intéragit avec, quoi que ...
 
char motcrypte[100]="";
  strcpy(motcrypte,tableau_salt[z]);
   
  strcat(motcrypte,tableau_pass[z]);        
 

mood
Publicité
Posté le 05-01-2005 à 16:20:54  profilanswer
 

n°938086
Lam's
Profil: bas.
Posté le 05-01-2005 à 16:24:11  profilanswer
 

lolofora a écrit :

Ce n'est pas constant


Tu essayes de modifier le contenu du tableau ou des chaînes ?  
Parce que chez moi, les chaînes codées "en dur", sont des chaînes constantes...

n°938100
lolofora
Posté le 05-01-2005 à 16:31:29  profilanswer
 

j'ai mis const et toujours le même problème  
 
maintenant au lieu d'avoir rien j'ai juste un "w"
 
 printf("ESSAI: %s \n",tableau_pass[0]);
 
retourne "ESSAI: w"

n°938111
Lam's
Profil: bas.
Posté le 05-01-2005 à 16:36:08  profilanswer
 

lolofora a écrit :

j'ai mis const et toujours le même problème  
 
maintenant au lieu d'avoir rien j'ai juste un "w"
 
 printf("ESSAI: %s \n",tableau_pass[0]);
 
retourne "ESSAI: w"


Oui, enfin, c'est pas const qui va t'enlever le problème présent.
 
Quel compilo as-tu, et qu'obtiens tu avec le code minimal ?  
 

Code :
  1. #include <stdio.h>
  2. const char *tableau_salt[]={
  3.   "ab","ff","gg","df","rr","fd","kl","az","fd","qd","mo","lf","ll","dl","qs","ss","$1$hXRCdBGR$"
  4. };
  5. const char *tableau_pass[]={
  6.   "OCVNDtv/yN6","lFKIEgw8xYM","mooJaXH.zoQ","CidZGf9Q5ZU","ba7Vc.05X7w","MGX/u2USi3w",
  7.   "pnWcb2CQ0io","aoYAqkUliDk","tn.uHMEj3dE","htYUjVPHbxU","BRFuc.dBQxw","h7ZhxutNDw2",
  8.   "pY00Ogf9jlM","kdVlLYDkmDw","DmaN13yoFCQ","Mw5kpjXzR9w","XrQxg7maCz/7bV25VmqTz1"
  9. };
  10. int main()
  11. {
  12. int z=0;
  13. const char * motcrypte="aaaababt";
  14. for(z=0;z<17;z++){
  15.     printf("test%d: crypt=%s sel=%s passwd=%s \n",z,motcrypte,tableau_salt[z],tableau_pass[z]);
  16. }
  17. return 0;
  18. }


Message édité par Lam's le 05-01-2005 à 16:36:32
n°938136
pains-aux-​raisins
Fatal error
Posté le 05-01-2005 à 16:44:13  profilanswer
 

Lam's a écrit :

Ptit coup de fatigue pains-aux-raisins ?  
Ou bien c'est ta touche étoile qui ne marche plus? ;)


nan, c'est le modele de markov sur lequel je bosse qui me prend la tete grave  :(

n°938140
lolofora
Posté le 05-01-2005 à 16:44:40  profilanswer
 

çà marche nikel avec ton code en effet

n°938150
lolofora
Posté le 05-01-2005 à 16:47:57  profilanswer
 

En faite çà ne marche plus dès que je rajoute  
 
strcpy(motcrypte,tableau_salt[z]);
   
strcat(motcrypte,tableau_pass[z]);

n°938152
Lam's
Profil: bas.
Posté le 05-01-2005 à 16:48:33  profilanswer
 

Bah, tu debugges quoi...  
Avec GDB, la commande watch devrait t'aider.  
Avec Visual C++, c'est le menu "watch" aussi, tiens.
A mon avis, tu as un pointeur qui se ballade dans la ville, et qui écrase tes données...

n°938197
lolofora
Posté le 05-01-2005 à 17:18:59  profilanswer
 

Bon j'ai trouver le problème c'était bien un pointeur qui mettait le bordel partout !
 
un strcpy(dest,source) où la source est plus grande que la destination çà ne fait pas bon ménage pour le reste du code ;)
 
Merci à Lam's et pains aux raisins !!

n°938209
pains-aux-​raisins
Fatal error
Posté le 05-01-2005 à 17:36:19  profilanswer
 

comme disait Lam's, pour cette fois il n'y a vraiment pas de quoi... [:ddr555]


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  Formatage d'un caractère spécial dans une chaine

 

Sujets relatifs
Trouver un mot dans une chaine de caracteresobtenir une chaine de caractère avec System.in.read()
chaine de caractèreFormat d'une chaine de caractères alphanumérique
valeur octal d'un caractereconversion d'une chaine de caractère en un entier unique
Comment savoir si une varaibale est un nombre, une chaine ???? 
Plus de sujets relatifs à : Formatage d'un caractère spécial dans une chaine


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR