Salut à tous j'aimerais avoir la différence et l'impact lors de l'utilisation de ces 2 types lors de la déclaration d'une chaîne de caractère.
Version imprimable
Salut à tous j'aimerais avoir la différence et l'impact lors de l'utilisation de ces 2 types lors de la déclaration d'une chaîne de caractère.
Char * et Char (%s) ne sont pas des types du C, tu peux préciser ton problème ?
"char *" est un type du C. Par contre Char (%s), je ne comprends pas
Désolé j'ai pas fais de précisions.
Pour char(%s) je fais allusion à déclarer une variable (chaîne de caractère) avec le type char puis puis dans un scanf ou un printf utiliser le format %s.
Mon problème est de savoir lequel de ces deux types est le plus approprié pour une chaîne de caractère (utilisation de la mémoire, rapidité d'exécution).
char est le nom du type "caractère" en langage C. Pour afficher un caractère à l'aide de la fonction printf, on utilise le spécificateur de format "%c". Par exemple :
'\n' c'est le caractère qui permet de passer à la ligne suivante ... :aie:Code:
1
2 char mon_char = 'A'; /* Un caractere. */ printf("mon_char = %c.\n", mon_char);
En fait si on veut simplement afficher un caractère, on peut également utiliser la "fonction" putchar.
char * est le nom du type pointeur sur un caractère en langage C. Une chaîne, lorsqu'elle est utilisée en dehors de sizeof, est toujours convertie par le compilateur en un pointeur vers son premier caractère. Pour afficher une chaîne (dont on connaît l'adresse de son premier caractère ...) dans printf, on utilise le spécificateur de format "%s". Par exemple :Code:putchar('A');
Code:
1
2 char * mon_pointeur = "Bonjour."; /* mon_pointeur pointe sur le caractere 'B' de la chaine "Bonjour". */ printf("%s\n", mon_pointeur);