Langage c"les liste"

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

  • Votes
  • Date
  • Date décroissante
  1. 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
    1. salut merci pour avoir intesser a mon probléme.bn8
  2. 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
    1. merci pour l'information mhv-sec
      c'est gentille
      cordialement
  3. desole
    revenons a nos moutons
    si tu a d'autres questions saches que je suis la pour te repondre
    au revoir
  4. 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.