Fonction chr(int c); en C++ [Résolu]

Signaler
Messages postés
65
Date d'inscription
jeudi 20 janvier 2005
Statut
Membre
Dernière intervention
25 juin 2010
-
Messages postés
475
Date d'inscription
dimanche 3 octobre 2004
Statut
Membre
Dernière intervention
11 août 2006
-
Bonsoir,
je voudrais savoir quelle est la fonction chr() de php ou de mirc, en C++
(si elle existe)
merci d'avance

I'm a killing Master

4 réponses

Messages postés
402
Date d'inscription
mardi 1 mai 2001
Statut
Membre
Dernière intervention
15 août 2011

#include
using namespace std;

int main()
{

char ch = 'a';
int ascii = ch;

cout << ch << " - " << ascii << endl;
return 0;

}

tout simplement, un caractère == un nombre(code ascii)
dis toi qu'un `char` est un petit entier(sur 8bits) tout simplement

char chaine1[4] = {'a', 'b', 'c','\0'};
char chaine2[4] = {97, 98, 99, 0};

cout << chaine1 << " - " << chaine2 << endl;

ca va afficher: abc - abc

~(.:: NitRic ::.)~
Messages postés
475
Date d'inscription
dimanche 3 octobre 2004
Statut
Membre
Dernière intervention
11 août 2006
2
Ne pas oublier que:


<li>contrairement au C, les char sont des char en C++ (force du typage oblige) mais les exemples de NitRic sont correctes (conversions implicites).</li>


<li>un char ne fais pas 8 bits mais CHAR_BIT bits (sinon comment le C ou le C++ pourraient etre portable ??).</li>


<li>le codage utilisé n'est pas forcement l'ascii (sur 7 bits), donc l'écriture {97, 98, 99, 0} n'est pas portable (sauf pour le 0 qui est fixé par la norme).
</li>
Messages postés
402
Date d'inscription
mardi 1 mai 2001
Statut
Membre
Dernière intervention
15 août 2011

heu ... 8bits == 1byte et d'après ce que je sais, un char == 1 octet(byte), non !?
pour le `typage` je suis d'accord, je ne code pas en C++ et j'ai pas fait attention
pour l'ascii je suis encore d'accord mais ce n'était qu'un exemple, désolé

Merci pour les précisions ...

~(.:: NitRic ::.)~
Messages postés
475
Date d'inscription
dimanche 3 octobre 2004
Statut
Membre
Dernière intervention
11 août 2006
2
Oui un char est un byte, mais la notion de byte est particulière
en C et en C++ (la traduction correcte serait plutot multiplet) car
pour des raison de portabilité le char désign l'unité atomique
d'adressage de la machine et sizeof(char) est fixé à 1 (sizeof
retourne une taille en char - byte C/C++ - et non en octet).

Par exemple le poids en bits d'un entier de maniere portable est sizeof(int)*CHAR_BIT.

Il me semble que le C avais été développé sur une machine qui n'adressait que des mots (16bits) donc un char pesait 16 bits.