Langage C: convertir char à int

Fermé
Sportif_C - 27 févr. 2012 à 17:06
 Sportif_C - 28 févr. 2012 à 19:40
Bonjour,

Je souhaite écrire une fonction qui permet de convertir un tableau de type **char à int[][].
Des pistes?
Merci.
A voir également:

1 réponse

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
27 févr. 2012 à 17:30
Bonjour
Cela dépend du tableau de char. Est-ce un tableau de chaîne ou bien un tableau 2d de char ?
Dans le premier cas, il suffira de faire une simple soustraction dans l'autre une conversion avec strtol suffira.
0
Merci pour ta réponse.
Les valeurs dans mon 2D char
sont comme ceci:
0 2 4
23 6 1 9 11
2 1 6
5 3
...
Ce que je veux faire c'est passer chaque valeur de mon tableau char** en indice pour un autre tableau 2D int (le nombre de colone et d'indice de deux tableau 2D sont différents).
Merci.
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
27 févr. 2012 à 18:13
Dernière question importante : les nombres du tableau de char s'affichent avec %d ou %c (dans le printf) ? En gros s'agit-il d'un simple nombre ou du code ascii du caractere ?
0
printf("%c",tabChar[][])
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
27 févr. 2012 à 21:18
Si c'est un %c, alors ton tableau 2D contient les caractères '0' à '9' maximum. Il ne peut donc pas y avoir de 23 comme vous avez dit. Ou alors ce ne sera pas %c mais %s ou %d.
Donc supposons que ce soit bien du %c.
Il suffit de créer un tableau 2D d'int de la même taille et de copier une à une les valeurs en effectuant la correspondance : tabInt[i][j] = tabChar[i][j] - '0';
0
Merci pour ta réponse. Si j'ai des valeurs supérieur à 10. Je ne suis pas sûre que tu m'avais compris.
En fait, j'ai copié les données de mon fichier texte dans le tab 2D char** car le nombre de colone dans le fichier est variable (ligne 1 deux colone, ligne 2 4 colones, etc).
Pour afficher mon tab char**.Voici l'affichage de mon tab char** utilises ça
 for(i=0; tabChar[i] != NULL; i++)
    {

        for(j=0; tabChar[i][j] != '\0'; j++)
        {

            printf("%c",tabChar[i][j]);
        }
        putchar('\n');

    }

Maintenant je vais utiliser les entiers en indice dans un tableau 2D de type int. Comment faire?
Merci
0