Quelle est la séquence d'échappement pour '"' dans C? En d'autres termes, comment puis-je demander à un While pour rechercher un occurance de ' " «"séquence d'échappement dans C?
Répondre
Dans une constante de caractère, vous n'avez pas besoin d'échapper au caractère "
,? Vous pouvez simplement utiliser '"'
dans une chaîne de caractères, vous avez besoin d'échapper au caractère "
puisqu'il est le délimiteur, vous faites cela en préfixant avec une barre oblique inverse ("\""
)
Notez que vous pouvez échapper au caractère "
dans une constante de caractère (. '\"'
); ce n'est tout simplement pas nécessaire
Vous pouvez également utiliser '\ x22' à la place de' \ "' pour rechercher une double-citation dans une chaîne – Zabba
@Zabba: Si je voyais '\ x22' dans une revue de code, je le considérerais presque assurément [ un code majeur WTF] (http://28.media.tumblr.com/tumblr_kpu8502s7I1qa3ti5o1_400.jpg) –
Bien sûr - vous devriez l'écrire comme \ 042 –
Vous voulez chercher "\""
Le caractère '"'
, code ASCII 34. "In a string literal you escape it like \" this"
.
utilisation strchr()
de string.h
#include <stdio.h>
#include <string.h>
int main()
{
char str[] = "This is a sample string with \" another \"";
char * pch;
printf ("Looking for the '\"' character in: %s ...\n",str);
pch=strchr(str,'"');
while (pch!=NULL)
{
printf ("found at %d\n",pch-str+1);
pch=strchr(pch+1,'\"');
}
return 0;
}
vous n'avez vraiment pas besoin d'utiliser string.h pour cela. ' while (* pch ++! = '"' && * pch);' déplace 'pch' à la première position d'une double citation ou jusqu'à la fin de la chaîne. –
Mais 'strchr' peut être plusieurs fois plus rapide avec de grandes chaînes, en raison de la possibilité de rechercher des mots entiers (ou des entiers entiers de 16 octets avec sse, etc.) à la fois. –
Le flip est que 'strchr' perd l'information sur la longueur de la chaîne si le caractère n'a pas été trouvé, donc vous devez gaspiller' O (n) 'time en appelant' strlen' pour le retrouver si vous en aviez besoin. Une alternative serait 'strcspn', mais il est peu probable qu'elle soit optimisée dans le cas d'un jeu de caractères unique. –
- 1. C# Sélection de séquence
- 2. Lecture d'animations en séquence dans objecive c
- 3. C dans la séquence de Fibonacci
- 4. Séquence dans SQL Sélectionnez
- 5. Séquence d'exécution des classes partielles en C#
- 6. obtenir une autre séquence éléments 'valeur dans une séquence
- 7. Comment générer une séquence alpha en C#?
- 8. générer séquence dans sql sélectionnez
- 9. Séquence vide dans LINQ
- 10. Séquence hexadécimale dans Oracle
- 11. Groupe plusieurs valeurs dans une séquence en utilisant C#
- 12. Remplacer la séquence de touches dans Borland C++ Builder 6
- 13. expression de séquence dans bash
- 14. Index d'onglets dans une séquence
- 15. Séquence de numéros dans AXAPTA
- 16. LINQ Syntext Séquence
- 17. Réorganisation d'une séquence
- 18. Compression de séquence?
- 19. séquence Fibonacci
- 20. Séquence d'impression en F #
- 21. Python: séquence aléatoire
- 22. C# ASP Authentification des formes de la séquence de chargement
- 23. Gestionnaire de contrôleur de séquence QuickTime en C#
- 24. séquence contient plus d'un élément
- 25. Rendu d'une séquence d'images en C# pour créer une vidéo
- 26. R: Occurrence -> séquence binaire?
- 27. Inverser l'ingénierie du code c en diagramme de séquence
- 28. Conversion d'une séquence plane en séquence 2d en python
- 29. Générateurs de séquence dans T-SQL
- 30. Incrémenter une séquence deux fois dans DB2
Pour clarifier: étant donné un 'char *' vous voulez arrêter quand vous trouvez un guillemet? –