Bleme code C validation carte credit
xman_genius
Messages postés
97
Statut
Membre
-
kilian Messages postés 8854 Statut Modérateur -
kilian Messages postés 8854 Statut Modérateur -
salut j ai un bleme avec mon code qui se plante
et me signale l'erreur suivante
ce code permet la validation d'une carte banquaire
invalide conversion from char to const char at line 15
initializing argument 1 of `int atoi(const char*)' at line 15
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
bool verifcard(char char_tab[16])
{
char *ptr;
int num_tab[16];
int nbr,sum,key;
if (strlen(char_tab)!=16)
{
goto fin;
}
for(nbr=0;nbr<strlen(char_tab)-1;nbr+=2)
{
num_tab[nbr]=atoi(char_tab[nbr])*2;
num_tab[nbr+1]=atoi(char_tab[nbr+1]);
sum+=(num_tab[nbr]+num_tab[nbr+1]);
}
nbr=(((int)(sum/10)+1)*10);
key=nbr-sum;
if(key==atoi(char_tab[15]))
return true;
else
goto fin;
fin:
{
return false;
}
}
et me signale l'erreur suivante
ce code permet la validation d'une carte banquaire
invalide conversion from char to const char at line 15
initializing argument 1 of `int atoi(const char*)' at line 15
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
bool verifcard(char char_tab[16])
{
char *ptr;
int num_tab[16];
int nbr,sum,key;
if (strlen(char_tab)!=16)
{
goto fin;
}
for(nbr=0;nbr<strlen(char_tab)-1;nbr+=2)
{
num_tab[nbr]=atoi(char_tab[nbr])*2;
num_tab[nbr+1]=atoi(char_tab[nbr+1]);
sum+=(num_tab[nbr]+num_tab[nbr+1]);
}
nbr=(((int)(sum/10)+1)*10);
key=nbr-sum;
if(key==atoi(char_tab[15]))
return true;
else
goto fin;
fin:
{
return false;
}
}
A voir également:
- Bleme code C validation carte credit
- Code ascii - Guide
- Pile carte mere - Guide
- Débloquer carte sim sans code puk - Guide
- Carte d'identité - Accueil - Services publics
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
3 réponses
désolé avec le casting le code se plante
s il y a une autre fonction que "atoi ()" qui a la meme fonctionnalité mais avec un type char et non string
merci de me repondre
s il y a une autre fonction que "atoi ()" qui a la meme fonctionnalité mais avec un type char et non string
merci de me repondre
Ah mais oui je suis bête.
char_tb est un tableau mais un element de chr_tab est un char.
Donc il faut que tu crées une variable temporaire pour copier dedans tes valeurs au fur et à mesure et en terminant avec le caractère de fin de chaîne '\0'
Par exemple au lieu de:
Tu fais:
Voilà. Ou bien tu te crées une fonction qui convertit en entier depuis le code ascii pour un char.
char_tb est un tableau mais un element de chr_tab est un char.
Donc il faut que tu crées une variable temporaire pour copier dedans tes valeurs au fur et à mesure et en terminant avec le caractère de fin de chaîne '\0'
Par exemple au lieu de:
num_tab[nbr]=atoi(char_tab[nbr])*2;
Tu fais:
char temp[2]; temp[0]=char_tab[nbr]; temp[1]='\0'; num_tab[nbr]=atoi( (const char *) temp);
Voilà. Ou bien tu te crées une fonction qui convertit en entier depuis le code ascii pour un char.