Variable type char en langage C

Résolu/Fermé
zebulon2503 Messages postés 1228 Date d'inscription jeudi 17 avril 2008 Statut Membre Dernière intervention 11 février 2016 - 21 déc. 2011 à 14:38
zebulon2503 Messages postés 1228 Date d'inscription jeudi 17 avril 2008 Statut Membre Dernière intervention 11 février 2016 - 22 déc. 2011 à 12:57
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 mercredi 10 juin 2009 Statut Membre Dernière intervention 29 juillet 2014 96
21 déc. 2011 à 14:43
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 vendredi 2 janvier 2009 Statut Membre Dernière intervention 5 juillet 2016 93
21 déc. 2011 à 14:41
0
mongo1994 Messages postés 877 Date d'inscription vendredi 2 janvier 2009 Statut Membre Dernière intervention 5 juillet 2016 93
21 déc. 2011 à 14:43
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 dimanche 18 mars 2001 Statut Modérateur Dernière intervention 15 janvier 2017 934
Modifié par jisisv le 21/12/2011 à 15:29
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 jeudi 17 avril 2008 Statut Membre Dernière intervention 11 février 2016 110
21 déc. 2011 à 14:45
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 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
21 déc. 2011 à 15:22
hello
uin tableau de char
char tableau[3999] ;
0
mongo1994 Messages postés 877 Date d'inscription vendredi 2 janvier 2009 Statut Membre Dernière intervention 5 juillet 2016 93
21 déc. 2011 à 15:06
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 mercredi 10 juin 2009 Statut Membre Dernière intervention 29 juillet 2014 96
Modifié par Geo373 le 21/12/2011 à 15:20
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 jeudi 17 avril 2008 Statut Membre Dernière intervention 11 février 2016 110
21 déc. 2011 à 15:29
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 mercredi 10 juin 2009 Statut Membre Dernière intervention 29 juillet 2014 96
21 déc. 2011 à 15:35
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 jeudi 17 avril 2008 Statut Membre Dernière intervention 11 février 2016 110
22 déc. 2011 à 12:57
Ok merci :-)
0