Comment puis-je imprimer un guillemet en C?
Dans une interview, on m'a demandé
Imprimer un guillemet à l'aide de la
printf()
fonction
J'ai été submergé. Même dans leur bureau, il y avait un ordinateur et ils m'ont dit d'essayer. J'ai essayé comme ceci:
void main()
{
printf("Printing quotation mark " ");
}
mais comme je le soupçonnais, il ne compile pas. Lorsque le compilateur obtient le premier "
il pense que c'est la fin de la chaîne, ce qui ne l'est pas. Alors, comment puis-je y parvenir?
- Rappelez-vous la courte section sur les caractères d'échappement au début de ce livre...?
- Double Possible de Comment faire pour imprimer des caractères spéciaux explicitement en C?
Vous devez vous connecter pour publier un commentaire.
Essayez ceci:
Sans une barre oblique inverse, les caractères spéciaux ont naturellement une signification particulière. Avec une barre oblique inverse ils ont l'impression qu'ils le paraissent.
La déclaration
aura l'impression que vous les guillemets.
Vous pouvez également imprimer ces caractères spéciaux \a, \b, \f, \n, \r, \t et
\v avec un slash () précédent, il.
\%
est incorrect, il sera traité de la même façon que%
.\'
n'est pas nécessaire - vous pouvez mettre une citation à l'intérieur de guillemets doubles comme ça."%"
librement si elle n'est pas dans la chaîne de format (par exemple,printf("print an int using %s\n", "%d")
)\%
de travail pour l'impression d'une seule%
?Vous avez pour échapper à la quotationmark:
En plus d'échapper au caractère, vous pouvez également utiliser le format
%c
, et utiliser le caractère littéral pour un guillemet.En langage de programmation C,
\
est utilisée pour l'impression de certains caractères spéciaux qui a sepcial sens en C. Ces caractères spéciaux sont énumérés ci-dessousVous devez utiliser échapper de caractères. C'est une solution de ce dilemme de la poule et de l'oeuf problème: comment puis-je écrire un ", si j'en ai besoin pour mettre fin à un littéral de chaîne? Donc, le C créateurs ont décidé d'utiliser un caractère spécial que les changements de traitement de la prochaine char:
Vous pouvez également utiliser ' \ " à l'entrée de symboles spéciaux tels que "\n", "\t", "\a", à l'entrée '\' elle-même: "\\" et ainsi de suite.
Ce qui fonctionne:
Mais si vous prévoyez de l'utiliser dans une interview, assurez-vous que vous pouvez expliquer ce qu'il fait.
MODIFIER: à la Suite d'Eric Postpischil commentaire, voici une version qui ne repose pas sur ASCII:
La sortie n'est pas aussi beau, et il n'est toujours pas à 100% portable (s'arrête sur une hypothétique des schémas de codage), mais il devrait fonctionner sur EBCDIC.
De sortie: "
vous devez utiliser les caractères d'échappement comme ceci: