IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

addition de caractère


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2008
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2008
    Messages : 88
    Par défaut addition de caractère
    salut à tous,
    je me demande si vous pouvez m'aider à résoudre un petit problème
    je veux faire l'addition de deux caracètre contenant des entier par la fonction:
    char Calcul (char a,char b)
    par exmple si j'ai
    a = '5'
    b = '2'
    je dois avoir '7' en retour

    le pb c'est que atoi prend un const char* en paramètre et donc je ne peut pas l'utiliser directement
    j'ai penser à faire ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    int d,e,f;
    scanf(a,"%d",&d) 
    scanf(b,"%d",&e) 
    f = d+e;
    scanf(f,"%c",&f);
    return f;
    pour les convertir en int et ensuite les calculer pour enfin les reconvertir en char mais j'ai une erreur qui me dit:
    'scanf' :impossible de convertir le paramètre 1 de 'char' en 'const char *'

    SVP aider moi j'en ai besoin et merci d'avance

  2. #2
    Expert confirmé
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    scanf(a,"%d",&d) 
    scanf(b,"%d",&e)
    Qu'est-ce que sont ces a et b ???? Qu'est ce qu'ils font là ???
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    scanf("%d",&d) 
    scanf("%d",&e)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    f = d+e;
    scanf(f,"%c",&f);
    A quoi sert de calculer f= d+e, si à la ligne suivante on écrase la valeur de f par le scanf ? (Qu'est-ce que fait là ce premier paramètre f dans le scanf ???)

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2008
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2008
    Messages : 88
    Par défaut
    merci pour votre intervention diogene, mais pb résolut:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    char Calcul(char A,char B,char c){
    	int a,b,e;
    	char g;
    	a = (int)(A);		/*convertir A en Ascii*/
    	b = (int)(B);		/*convertir B en Ascii*/
    	a = (57-a);			/*calcul de la valeur de a en decimal*/
    	b = (57-b);			/*calcul de la valeur de b en decimal*/
    	e = a+b;
            return e;                    /*la conversion int->char est implicite*/
    }

  4. #4
    Membre éclairé

    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Février 2005
    Messages
    464
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2005
    Messages : 464
    Par défaut
    Tu souhaites 'sommer' des caractères de l'alphabet par leur valeur ASCII ?

    Compte tenu de la table ASCII http://www.table-ascii.com/ je ne comprends pas ce calcul. Que viennent également faire 'char g' et 'char c' ici ?

    Pour moi e = 114 - (a+b) ??

    Le problème est donc le suivant, en sommant 'a'+'b' tu n'obtiens pas 'c' car l'encodage des valeurs commencent sur un offset commun qui est = a code 'a'-1 : donc 'a'+'b' = 2 * offsetCommun + offset de a + offset de b = 2*offsetCommun + offset de c. Tu dois donc retirer une fois offsetCommun pour obtenir la lettre voulue.


    Si on considère que les valeur des caractères minuscule de l'alphabet sont consécutives et démarrent avec la lettre 'a' il te suffit de faire comme suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    char Calcul(char A,char B)
    {
        return (A+B-('a'-1)) ;
    }
    PS: si ton pb est résolu n'oublie pas de mettre ton post résolu.

  5. #5
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    Bonjour,
    Plutôt que d'utiliser 57; tu peux utiliser '0':
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    char Calcul(char A,char B){
          return '0' + (A-'0') + (B-'0');
    }
    Seulement, si A+B>9, tu auras des problèmes!

  6. #6
    Membre confirmé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2008
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2008
    Messages : 88
    Par défaut
    problème résolut
    merci pour aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 07/02/2012, 12h02
  2. Extraction de caractéres et addition de ceci
    Par ROUSSIGNE dans le forum Access
    Réponses: 3
    Dernier message: 29/04/2009, 10h02
  3. [MySQL] extraire des nombre d'une chaine de caractères et addition
    Par Yotho dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 04/03/2006, 16h54
  4. Adresse des polices de caractères dans la RAM video ?
    Par Anonymous dans le forum x86 16-bits
    Réponses: 5
    Dernier message: 27/05/2002, 17h29
  5. Réponses: 3
    Dernier message: 09/05/2002, 01h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo