Variable type char en langage C

Résolu
zebulon2503 Messages postés 1228 Date d'inscription   Statut Membre Dernière intervention   -  
zebulon2503 Messages postés 1228 Date d'inscription   Statut Membre Dernière intervention   -
Salut à toutes et tous !

Petite question rapide et simple normalement.
J'ai un petit trou de mémoire et plus moyen de me rappeler si les variables de types char en langage C sont limitées en taille (255 caractères ou plus ?).

Quelqu'un pourrait il m'éclairer svp ?
Merci :-)

Zebulon

5 réponses

Geo373 Messages postés 600 Date d'inscription   Statut Membre Dernière intervention   96
 
Un char normal va de -128 à 127 alors qu'un unsigned char va de 0 à 255
3
mongo1994 Messages postés 877 Date d'inscription   Statut Membre Dernière intervention   93
 
0
mongo1994 Messages postés 877 Date d'inscription   Statut Membre Dernière intervention   93
 
Retenez bien :

Le type char permet de stocker des nombres allant de -128 à 127, unsigned char des nombres de 0 à 255.
Il y a une table que votre ordinateur utilise pour convertir les lettres en nombres et inversement.
On peut donc utiliser le type char pour stocker UNE lettre.
'A' est remplacé à la compilation par la valeur correspondante (65 en l'occurrence). On utilise donc les apostrophes pour obtenir la valeur d'une lettre.
0
jisisv Messages postés 3645 Date d'inscription   Statut Modérateur Dernière intervention   934
 
Attention cependant avec les chaînes Unicode, qui ne sont pas supportées nativement:
#include <stdlib.h> 
#include <stdio.h> 
#include <string.h> 

int main(coid) 
{ 
  char *format = "Length of '%s' %d\n"; 
  char *st1 = "abc"; 
  char *st2 = "éçà"; 

  printf(format, st1, strlen(st1)); 
  printf(format, st2, strlen(st2)); 

  exit(EXIT_SUCCESS); 
} 
johand@osiris: ~/src/CCM/C $ ./chartest  
Length of 'abc' 3
Length of 'éçà' 6
0
zebulon2503 Messages postés 1228 Date d'inscription   Statut Membre Dernière intervention   110
 
Merci à vous 2.
Mais dans le cas où je veux par exemple stocker 4000 caractères, quelle type de variable dois je utiliser ?

(Je vous promet, dernière question sur le sujet :-) )
Merci encore !
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
hello
uin tableau de char
char tableau[3999] ;
0
mongo1994 Messages postés 877 Date d'inscription   Statut Membre Dernière intervention   93
 
salut
on poste pour avoir des réponses, et on te répondrais pas si ca nous embetais donc y a aucun soucis.
mais je ne suis pas très loin en programmation mais, si tu met un Void ca peux pas passer? et puis tu écris char et tu inclus dedan la variable nomée void comme ca, ca devrais ptetre passer?

enfin, je suis pas très callé en programation mais , il me semble que ca peut se tenter.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Geo373 Messages postés 600 Date d'inscription   Statut Membre Dernière intervention   96
 
Un short (2 octets) te permet déjà d'aller jusqu'à 65536 mais vu les ordinateurs de maintenant, utilises un int (4 octets) ou long (4 milliards et quelques). C'est pas la place qui manque.
Quand tu parles de caractère, tu veux dire un nombre ou une phrase de 4000 lettres?
0
zebulon2503 Messages postés 1228 Date d'inscription   Statut Membre Dernière intervention   110
 
Je veux savoir si ca est possible :
char variableA[4000+1];


Ca serait pour stocker des mots voire de longues phrases.
0
Geo373 Messages postés 600 Date d'inscription   Statut Membre Dernière intervention   96
 
Ah oui ça c'est possible, tu peux mettre le nombre que tu veux entre crochet tant que ça rentre dans la plage mémoire e ton PC. Du moment que ton nombre est plus grand que la longueur du texte à rentrer, il n'y aura pas de soucis
0
zebulon2503 Messages postés 1228 Date d'inscription   Statut Membre Dernière intervention   110
 
Ok merci :-)
0