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 :

conversion de chaine


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Etudiant-Benevole pour Electronic-MasterX
    Inscrit en
    Janvier 2015
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Islande

    Informations professionnelles :
    Activité : Etudiant-Benevole pour Electronic-MasterX
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2015
    Messages : 70
    Par défaut conversion de chaine
    Bonjour,
    s'il vous plait comment passer par exemple de la chaine de caractère "1253" à l'entier 1253. donc par exemple si "1253" est un tableau de caractère et on veut mettre celà dans un tableau d'entier où 1 est dans la premiere case et 2 dans la deuxiéme case ainsi de suite. merci

  2. #2
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Juin 2012
    Messages
    257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2012
    Messages : 257
    Par défaut
    Bonjour,

    Pour passer d'une chaîne à un entier il existe la fonction atoi() :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    #include <stdlib.h> 
    int atoi (const char * str);

  3. #3
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par défaut
    si tu veux vraiment un tableau d'entiers, utilise le fait que les chiffres sont consécutifs dans l'ASCII.
    Ainsi, si c est un caractère représentant chiffre, sa valeur numérique est c-'0'. Car '0'-'0' = 0, '3'-'0' = 3 etc.

  4. #4
    Membre actif
    Homme Profil pro
    Etudiant-Benevole pour Electronic-MasterX
    Inscrit en
    Janvier 2015
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Islande

    Informations professionnelles :
    Activité : Etudiant-Benevole pour Electronic-MasterX
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2015
    Messages : 70
    Par défaut
    ok merci à tous voici le code que j'ai pu synthétiser avec votre aide
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    #include<stdio.h>
     
    int main()
    {
    char str[]="12345";
    int tab[20], i,j;
     
    for(i=0; str[i]!='\0'; i++)
    tab[i]=str[i]-'0';
     
    for(j=0; j<i; j++)
    printf("%d\t", tab[j]);
    }

  5. #5
    Membre très actif
    Avatar de sambia39
    Homme Profil pro
    No Comment
    Inscrit en
    Mai 2010
    Messages
    548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : No Comment
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mai 2010
    Messages : 548
    Par défaut
    Bonjour
    Citation Envoyé par nanosoft Voir le message
    Bonjour,

    Pour passer d'une chaîne à un entier il existe la fonction atoi() :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    #include <stdlib.h> 
    int atoi (const char * str);
    D'accord sur le principe de la conversion mais attention à son utilisation la fonction renvoie un entier et prend comme argument un pointeur de char si "12345 " est une chaine de caractère alors on aura comme résultat 12345 exemples pas très propres juste pour illustrer l'idée
    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    int tab[20];
    	unsigned int i = 0;
    	char c_str[] = "12345";
     
    	for( i = 0; i < strlen(c_str); i++ )
    		tab[i] = atoi(&c_str[i]);
    	for( i = 0; i < strlen(c_str); i++ )
    		printf(">>\t%d\n", tab[i] );
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    >>	12345
    >>	2345
    >>	345
    >>	45
    >>	5
    Citation Envoyé par leternel Voir le message
    si tu veux vraiment un tableau d'entiers, utilise le fait que les chiffres sont consécutifs dans l'ASCII.
    Ainsi, si c est un caractère représentant chiffre, sa valeur numérique est c-'0'. Car '0'-'0' = 0, '3'-'0' = 3 etc.
    Cette méthode est plus simple qui va directement à l'essentiel
    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
     
    //
    int main( void ){
     
    	int tab[20];
    	unsigned int i = 0;
    	char c_str[] = "12345";
     
    	for( i = 0; i < (sizeof c_str/sizeof *c_str)-1 ; i++ )
    		*(tab+i) = *(c_str+i) - '0';
     
    	for( i = 0; i < (sizeof c_str/sizeof *c_str)-1; i++ )
    		printf(">>\t%d\n", *(tab+i) );
     
    	return( EXIT_SUCCESS );
    }
    //
    int main( void ){
     
    	int tab[20];
    	unsigned int i = 0;
    	char c_str[] = "12345";
     
    	for( i = 0; i < 5; i++ )
    		tab[i] = c_str[i] -'0';
    	for( i = 0; i < 5; i++ )
    		printf(">>\t%d\n", tab[i] );
     
    	return( EXIT_SUCCESS );
    }
     
    //
    int main( void ){
     
    	int tab[20];
    	unsigned int i = 0;
    	char c_str[] = "12345";
     
    	for( i = 0; i < strlen(c_str); i++ )
    		tab[i] = c_str[i] -'0';
    	for( i = 0; i < strlen(c_str); i++ )
    		printf(">>\t%d\n", tab[i] );
     
    	return( EXIT_SUCCESS );
    }

    Citation Envoyé par adamsjoe96 Voir le message
    ok merci à tous voici le code que j'ai pu synthétiser avec votre aide
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    #include<stdio.h>
    
    int main()
    {
    char str[]="12345";
    int tab[20], i,j; // variable (j) pas d'utilité en peut tout à fait réutiliser la variable (i)
    
    for(i=0; str[i]!='\0'; i++)
    tab[i]=str[i]-'0';
    
    for(j=0; j<i; j++) 
    printf("%d\t", tab[j]);
    /// retour de la fonction principale ?
    }
    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    int main( void ){
     
    	int tab[20];
    	unsigned int i = 0;
    	char c_str[] = "12345";
     
    	for( i = 0; i < 5; i++ )
    		tab[i] = c_str[i] -'0';
    	for( i = 0; i < 5; i++ )
    		printf(">>\t%d\n", tab[i] );
     
    	return( EXIT_SUCCESS );
    }
    à bientôt

  6. #6
    Membre actif
    Homme Profil pro
    Etudiant-Benevole pour Electronic-MasterX
    Inscrit en
    Janvier 2015
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Islande

    Informations professionnelles :
    Activité : Etudiant-Benevole pour Electronic-MasterX
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2015
    Messages : 70
    Par défaut
    Svp comment faire maintenant pour passer de l'entier au charactere. Merci

Discussions similaires

  1. Réponses: 3
    Dernier message: 01/10/2006, 23h05
  2. [C#] Conversion de chaine
    Par Nico28 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 11/07/2006, 13h03
  3. Conversions de chaines en pointeurs LPCSTR
    Par dacid dans le forum C++
    Réponses: 27
    Dernier message: 17/05/2006, 10h34
  4. conversion une chaine numérique en lettre
    Par nazimb dans le forum ASP
    Réponses: 1
    Dernier message: 20/11/2005, 17h39
  5. conversion datetime-chaine de caracteres
    Par HULK dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 27/08/2005, 13h26

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