Langage c"les liste"

kika333 Messages postés 12 Statut Membre -  
Azer_Ty Messages postés 108 Statut Membre -
Bonjour,
je recherche une solution pr exercice qui demande a ecrire en c une liste chainée de chaine de caractére qui représent un nombre entier;puis :multiplier le par 10; div par 10.svp mes amie aider moi pleaaaaaaasssssse!!.gros bisou.
Configuration: Windows XP
Internet Explorer 6.0

4 réponses

  1. asma sisi Messages postés 121 Date d'inscription   Statut Membre Dernière intervention   20
     
    bonjour
    pour connaitre la valeur en chiffre d'une chaine de caracteres
    dans le langage ocaml il y a une fonction qui s'appelle " int of string " qui te donne la partie entière d'une chaine de caractères

    mais en c++ je ne sais pas si ca existe
    je m'excuse pour ne pas t'avoir répondre et aussi pour le retard

    dans le module algorithmique et structures de données de cette année on a démarré par des cours de langage c++ mais on a pas encore bien abordé les listes chainées
    0
    1. kika333 Messages postés 12 Statut Membre 1
       
      salut merci pour avoir intesser a mon probléme.bn8
      0
  2. MHV-SEC Messages postés 140 Statut Membre 11
     
    main()
    {
    int j;
    char x='a'; //par exemple
    j=(int) x;
    ....
    }

    tu met le code ASCII de x (qui est egale a a) et tu le met dans j (qui est un entier) c'est comme la fonction int-of-char
    que ta dit asma sisi
    0
    1. asma sisi Messages postés 121 Date d'inscription   Statut Membre Dernière intervention   20
       
      merci pour l'information mhv-sec
      c'est gentille
      cordialement
      0
  3. MHV-SEC Messages postés 140 Statut Membre 11
     
    desole
    revenons a nos moutons
    si tu a d'autres questions saches que je suis la pour te repondre
    au revoir
    0
    1. __
       
      Y........
      0
  4. Azer_Ty Messages postés 108 Statut Membre 60
     
    Je ne sais pas si ça t'aide, mais c'est une fonction qui convertie les chaines de caractères en entiers
    #include <stdio.h>
    #include <stdlib.h>
    
    // on décompose l'entier de cette manière
    // ex : "123" devient 1*100 + 2*10 + 3*1
    // d'où la puisance de 10
    
    // pour les caractères en entier
    // si '0' equivaut à 48 en entier
    // alors '1' est égal à 49, '2' à 50, ...
    // d'où '5' - '0' = 53 - 48 = 5
    
    int convertirEntier(char *maChaine)
    {
    	int i=0;				// compteur
    	int tailleChaine=0;		// taille de la chaine en paramêtre
    	int monInt=0;			// entier converti (si erreur sera égal à -1)
    	int puissanceDix=1;		// puissances de 10
    
    	// on parcourt la chaine complete ou la fin de la mémoire (255 caractères)
    	while(maChaine[i] != '\0' && i != 256)	// le caractère \0 correspont à la fin d'une chaine
    	{
    		i++;
    	}
    
    	if(maChaine[i] != '\0')	// cas d'erreur
    		return -1;
    
    	tailleChaine = i;	// affectation de taille
    
    	for(i = 0; i < tailleChaine - 1; i++)	//calcul de la puissance de 10 nécessaire
    		puissanceDix = 10 * puissanceDix;
    
    	// on parcourt la chaine à nouveau en décomposant
    	for(i = 0; i < tailleChaine; i++)
    	{
    		if(maChaine[i] < '0' || maChaine[i] > '9')	// cas d'erreur
    			return -1;
    		
    		// conversion
    		monInt = monInt + puissanceDix * (int)(maChaine[i] - '0');
    		//recalcul de la puissance
    		puissanceDix = puissanceDix / 10;
    	}
    
    	return monInt;
    }
    
    
    
    int main(void){
    
    	char *maChaine;
    	int monEntier;
    
    	maChaine = (char*)malloc(sizeof(char) * 255);
    
    	printf("Saisie de maChaine: ");
    	scanf("%s", maChaine);
    
    	printf("Ma chaine: \"%s\"\n", maChaine);
    
    	monEntier = convertirEntier(maChaine);
    
    	printf("Mon entier: \"%d\"\n", monEntier);
    
    	free(maChaine);
    	return 0;
    } 
    


    Bonne continuation.

    0