Variable type char en langage C

Résolu
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

  1. Un char normal va de -128 à 127 alors qu'un unsigned char va de 0 à 255
    1. 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?
      1. Je veux savoir si ca est possible :
        char variableA[4000+1];


        Ca serait pour stocker des mots voire de longues phrases.
      2. 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
      3. Ok merci :-)
    2. 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.
      1. 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 !
        1. Contributeur
          hello
          uin tableau de char
          char tableau[3999] ;
        1. 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.
        2. Modérateur
          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