Je veux définir une chaîne constante contenant des caractères non imprimables dans C. Pour par exemple - laissez-le dire que j'ai une chaîne maintenant je veux le définir comme ça p> < Pré> xxx pré> Que dois-je écrire à la place de ?> code> définir une chaîne équivalente à str1 code>? P> P> P> P> P> P> P> >
3 Réponses :
Vous pouvez utiliser "\ x01 \ x05 \ x0a \ x15" code> p>
+1, à l'exception du fait que cela aura un supplément, résiliant NULL annexé à elle.
@roe: Mais depuis que l'OP dit qu'il veut une "chaîne" (et non un tableau code> char code>), cela signifie qu'il nécessite un terminateur Nul.
@jamesd; Je sais, d'où le +1, je voulais juste souligner que cela ajoutera un 0-octet supplémentaire à ce sujet, de sorte qu'ils seront probablement équivalents à la plupart des intentions et des objectifs, mais ne seront pas strictement égaux.
Au risque de sonner petit, ma réponse est meilleure à cause de cela. :)
Sonne très petit
vous pouvez utiliser: p>
voir séquences d'échappement sur MSDN ( Impossible de trouver un plus neutre em> link). p> const char * str2 = "\ x01 \ x05 \ x0a \ x15"; code> p>
Si vous souhaitez utiliser à la fois une chaîne littérale et éviter d'avoir un terminateur supplémentaire (caractère NUL) ajouté, faites-le comme suit:
str is 4 bytes: 0: 01 1: 05 2: 0a 3: 15
Intéressant. Est-ce dans la norme?
@row: Oui, absolument. Ce n'est pas la même chose en C ++, mais pour C c'est un comportement standard.