salut;
je cherche la fonction qui donne le numero d'un caractére dans une chaine de caractéres. je la connais en pascal, c'est "ord" je la veux en c++ svp.
j'attend vos réponces et merci d'avance.
salut;
je cherche la fonction qui donne le numero d'un caractére dans une chaine de caractéres. je la connais en pascal, c'est "ord" je la veux en c++ svp.
j'attend vos réponces et merci d'avance.
Un caractère en C/C++ peut être considéré comme un entier.
je ne sais pas si cela répond à ton besoin.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 #include <iostream> #include <cstdlib> int main(void) { for (char c='a' ; c < 'z' ; c++) { std::cout << "caractere " << c << " --> " << int(c) << std::endl; } return EXIT_SUCCESS; }
C'est du C
Code : Sélectionner tout - Visualiser dans une fenêtre à part int(c)
C'est du C++
Code : Sélectionner tout - Visualiser dans une fenêtre à part static_cast<int>(c)
Par miracle, c'est aussi du C++
Et c'est pas très beau
Pour le coup, utiliser static_cast<>() est certes plus sûr, mais vu la complexité du code original, c'est vraiment exagéré. Il faut quand même se rappeler qu'en tant que programmeurs, on a l'obligation de programmer à destination des autres programmeurs, et non pas à destination de la machine, pour lui faire plaisir. Et au vu de la différence de lisibilité, le clou int(C) n'a pas besoin d'être déchiqueté par l'arme atomique static_cast<>()
Sinon, il y a :
Il n'y a pas besoin de cast, grâce aux règles de promotion vers les entiers.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 char c = '$'; int ic = c;
[FAQ des forums][FAQ Développement 2D, 3D et Jeux][Si vous ne savez pas ou vous en êtes...]
Essayez d'écrire clairement (c'est à dire avec des mots français complets). SMS est votre ennemi.
Evitez les arguments inutiles - DirectMachin vs. OpenTruc ou G++ vs. Café. C'est dépassé tout ça.
Et si vous êtes sages, vous aurez peut être vous aussi la chance de passer à la télé. Ou pas.
Ce site contient un forum d'entraide gratuit. Il ne s'use que si l'on ne s'en sert pas.
Tout comme les macros et autres héritages du C, c'est pas pour ça qu'il est recommandé de les utilisés.Par miracle, c'est aussi du C++
Certains designer outre atlantique ne dirais pas la même chosesEt c'est pas très beau
Je trouve justement (personnellement) que le "cast à la C++" est plus lisible qu'un cast C, dans un contexte simple et plus complexe. En posant les yeux sur le code, on observe directement qu'il y a un transtypage sans même lire en détail.Il faut quand même se rappeler qu'en tant que programmeurs, on a l'obligation de programmer à destination des autres programmeurs, et non pas à destination de la machine, pour lui faire plaisir
C'est juste une habitude, ça ne mange pas de pain, tout est fait à la compilation.Et au vu de la différence de lisibilité, le clou int(C) n'a pas besoin d'être déchiqueté par l'arme atomique static_cast<>()
Dans un petit programme comme celui là d'accord, mais si le code venais à évoluer dans un programme plus conséquent et complexe? Mais il vaut mieux prendre de bonne habitude plutôt que d'apprendre à utilisé des restes d'évolutions. Connaitre leurs existences et leurs utilisations oui, savoir pourquoi il existe et leurs limites encore mieux.
Partager