105 votes

Comment représente-t-on le char vide ?

Je suis en train d'écrire un petit programme mais je continue à obtenir cette erreur lors de la compilation

erreur : constante de caractère vide

Je réalise que c'est parce que j'essaie de remplacer un caractère valide par un espace vide. c[i]='' mais je n'ai pas réussi à trouver une autre façon de le représenter.

167voto

ardent Points 1348

Vous pouvez utiliser c[i]= '\0' ou simplement c[i] = (char) 0 .

Le caractère nul/vide est simplement une valeur de zéro, mais peut également être représenté comme un caractère avec un zéro échappé.

35voto

occulus Points 10906

Vous ne pouvez pas stocker "aucun caractère" dans un caractère - cela n'a pas de sens.

Vous pouvez également enregistrer un caractère qui a une signification particulière pour vous, par exemple un caractère nul. '\0' - et le traiter spécialement.

15voto

Claudiu Points 58398

L'omble de l'espace vide serait ' ' . Si vous cherchez un null qui serait '\0' .

11voto

Grijesh Chauhan Points 28442

Oui, c[i]='' n'est pas un code valide. Nous parenthèses caractère constant entre ' ' par exemple c[i] = 'A'; char A . mais vous n'écrivez pas de char entre les deux. '' .

L'espace vide n'est rien d'autre que de supposer que si vous voulez attribuer de l'espace alors faites-le :

c[i] = ' ';
//      ^  space 

si vous voulez affecter nul char alors faites-le :

c[i] = '\0';
//       ^ null symbol 

Exemple : Supposons que c[] une chaîne de caractères (nul \0 tableau de chars terminés) si vous avez une chaîne de caractères. par exemple :

char c[10] = {'a', '2', 'c', '\0'};

Et vous remplacer le deuxième caractère par un espace :

c[1] = ' ';

et si vous l'imprimez en utilisant printf comme suit :

printf("\n c: %s", c);

alors la sortie serait :

  c:  a  c
//      ^ space printed 

Et vous remplacer le deuxième caractère par ' \0 ' :

c[1] = '\0';

alors la sortie serait :

  c:  a

parce que la chaîne se termine par \0 .

5voto

verbose Points 3615

Il n'y a pas de "personnage vide". '' .

Si vous avez besoin d'un caractère d'espacement, celui-ci peut être représenté par un espace : c[i] = ' ' ou comme son équivalent octal ASCII : c[i] = '\040' . Si vous avez besoin d'un caractère NUL qui est c[i] = '\0' .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X