ForHosting KIT · Outils pour développeurs

Échappeur de chaînes C

Un guillemet, une barre oblique inverse ou un saut de ligne cassent une chaîne C ; l'outil transforme Hello "world", un saut de ligne et line 2 en Hello \"world\"\nline 2, prêt à coller. Il défait aussi les échappements et refuse les séquences mal formées. Gratuit dans votre navigateur.

  • Gratuit
  • Fonctionne dans votre navigateur
  • Sans inscription
  • Vos données restent sur votre appareil
Utilisez-le depuis WebAPIE-mailTelegramApp bientôt
Si vous saisissez
Texte
Hello "world" line 2
Mode de calcul
Escape
Guillemets
Double
Vous obtenez
Résultat
Hello \"world\"\nline 2
Longueur
23
Littéral
"Hello \"world\"\nline 2"

Insérer du texte libre dans un littéral de chaîne C ou C++ est un piège classique : un guillemet double termine la chaîne, une barre oblique inversée nue absorbe le caractère suivant, un saut de ligne brut est une erreur de syntaxe, et des échappements octaux ou hexadécimaux qui semblent corrects dans un journal peuvent être tronqués ou illégaux une fois collés dans le code source. Cet échappeur de chaînes C transforme le texte brut en un corps de littéral sûr (et en un littéral entre guillemets prêt à coller), et inverse la même carte lorsque vous devez récupérer les caractères d'origine. Le mode escape gère le style de guillemets que vous choisissez—doubles pour les chaînes "..." ordinaires ou simples pour les constantes de caractère—plus les barres, les échappements de contrôle usuels et, en option, des formes hex ou de caractère universel pour le non-ASCII.

Comment fonctionnent en pratique les échappements de chaînes C et C++

Un littéral de chaîne C ou C++ est une suite de caractères entre guillemets doubles ; les constantes de caractère utilisent des guillemets simples. À l'intérieur, une barre oblique inversée démarre un échappement : \\ devient une barre, \" clôt en toute sécurité une chaîne entre guillemets doubles, \' fait de même pour les constantes de caractère, et \? existe pour que les chaînes d'outils sensibles aux trigraphes ne mal lisent pas un point d'interrogation.

Les échappements de contrôle nommés sont standard en C et C++ : \n est un saut de ligne, \r un retour chariot, \t une tabulation, plus \a alerte, \b retour arrière, \f saut de page et \v tabulation verticale. Deux formes numériques comptent chaque jour en code système : un échappement octal est une barre suivie d'un à trois chiffres octaux (ainsi \0 est un octet nul et \101 la lettre A), et un échappement hexadécimal est \x suivi d'un ou plusieurs chiffres hex.

C99 et C++ acceptent aussi les noms de caractères universels \uXXXX et \UXXXXXXXX pour une source Unicode portable. Cette capacité applique ces règles de façon déterministe. En mode escape elle parcourt chaque unité de code, remplace les caractères spéciaux par l'échappement sûr le plus court pour le style de guillemets choisi, utilise les contrôles nommés lorsqu'ils existent, bascule sur \xHH pour les autres octets C0, et réécrit éventuellement chaque caractère non-ASCII lorsque hex vaut true.

En mode unescape elle analyse les mêmes séquences vers des caractères et rejette les barres finales, les \x ou noms universels incomplets, les chiffres non hex, les points de code hors plage et les échappements de lettres inconnus qui seraient un comportement indéfini dans une lecture stricte du langage.

Ce que vous envoyez et ce que vous recevez

Envoyez un champ chaîne obligatoire nommé text et des champs optionnels mode, quote et hex. Le mode escape convertit le texte brut en un corps de littéral C/C++ stocké dans result, et renvoie aussi literal : le même corps enveloppé dans les guillemets choisis pour coller dans le code source. Le mode unescape inverse les séquences d'échappement dans text et renvoie la chaîne brute récupérée dans result sans champ literal.

Quote vaut double par défaut ; choisissez single lorsque la destination est une constante de caractère ou une chaîne entre guillemets simples dans un dialecte proche—le mode escape n'échappe que le délimiteur choisi, de sorte que les apostrophes peuvent rester brutes dans des corps entre guillemets doubles. La réponse renvoie mode, quote, hex, le text d'origine, result et la longueur de result. Les échecs de validation ne consomment pas le solde prépayé.

Les contrôles classiques incluent l'échappement d'une salutation avec guillemets intégrés et un saut de ligne, le déséchappement d'un corps qui utilise \xE9 pour é ou \101 pour A, l'échappement avec hex true pour que le non-ASCII devienne des formes \x ou \u, et le rejet d'une chaîne qui se termine par une barre nue.

Où un échappeur de chaînes C apporte sa valeur

Les équipes de micrologiciels embarqués et de pilotes collent des dumps de protocole qui contiennent déjà des échappements octaux et hex et ont besoin d'un chemin unescape qui échoue bruyamment sur des séquences \x tronquées au lieu d'inventer des octets. Les sites de documentation et de recettes qui montrent des exemples à copier-coller ont besoin d'un chemin d'échappement fiable pour que les échantillons fournis par l'utilisateur restent des littéraux C valides.

Les pipelines QA et CI comparent des vecteurs dorés d'échappement et de déséchappement entre hôtes pour qu'un saut de ligne soit toujours \n sous guillemets doubles et jamais une coupure brute qui ferait échouer la compilation. Les auteurs de supports pédagogiques qui enseignent la syntaxe des chaînes C veulent des exemples qui mentionnent explicitement l'octal et l'hex, ce qui est l'intention de recherche capturée par cette page.

Si vous avez besoin d'échappements de chaînes JavaScript, d'entités HTML ou d'encodage pour cent d'URL, traitez-les comme des intentions et des pages distinctes plutôt que de surcharger cette page d'échappeur de chaînes C.

Littéraux de chaîne sûrs dans le code C/C++ généré

Échappez titres, messages et valeurs de configuration en texte libre avant de les écrire dans des littéraux C entre guillemets doubles ou des constantes de caractère entre guillemets simples.

Décoder les échappements octaux et hex des journaux

Déséchappez des corps de chaîne style C issus de journaux firmware, tickets et fichiers dorés vers un texte lisible, avec échecs stricts sur les échappements incomplets ou illégaux.

Réécriture hex uniquement ASCII pour les toolchains

Échappez avec hex true pour que les caractères non-ASCII deviennent des séquences \xHH, \uXXXX ou \UXXXXXXXX adaptées aux dépôts ASCII uniquement et aux compilateurs stricts.

Quelle est la différence entre result et literal ?

Result est le corps échappé sans guillemets enveloppants. Literal (mode escape uniquement) enveloppe ce corps dans le style de guillemets choisi pour coller une chaîne C/C++ complète dans le code source.

Puis-je à la fois échapper et déséchapper ?

Oui. Définissez mode sur escape (par défaut) pour encoder le texte brut, ou mode sur unescape pour récupérer le texte à partir d'un corps de littéral de chaîne C/C++.

Quels styles de guillemets sont pris en charge ?

Double (par défaut) pour les littéraux de chaîne ordinaires, et single pour le style des constantes de caractère. Le mode escape n'échappe que le délimiteur que vous avez choisi.

Que se passe-t-il si une séquence d'échappement est mal formée ?

Rien n'est facturé pour les échecs de validation.

Quel est le coût ?

L'outil navigateur est gratuit et s'exécute en local.

Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.

POSThttps://api.kit.forhosting.com/enc/c-escape

Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.

curl -X POST https://api.kit.forhosting.com/enc/c-escape \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text":"Hello \"world\"\nline 2"}'
{
  "text": "Hello \"world\"\nline 2"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "enc.c_escape",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.

par requête$0.002

Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.

HTTPCodeSignification
401unauthorizedClé API absente ou invalide : vérifiez l’en-tête Authorization.
402insufficient_balanceSolde insuffisant : rechargez votre compte pour lancer cette tâche.
404unknown_typeType de tâche inconnu : vérifiez le champ type de votre requête.
429rate_limitedTrop de requêtes : ralentissez la cadence, puis réessayez.

Le mode unescape comprend \n, \r, \t, \\, \", \', \?, \a, \b, \f, \v, l'octal d'un à trois chiffres, \xHH, \uXXXX et \UXXXXXXXX, et échoue immédiatement avec invalid_input sur les barres finales, l'hex incomplet ou les lettres d'échappement inconnues, au lieu d'inventer des ordures semi-décodées.

Comment fonctionnent en pratique les échappements de chaînes C et C++

Le chemin est un travail pur de chaînes sans réseau, sans graines aléatoires et sans horodatages d'horloge, de sorte que des entrées identiques produisent toujours un JSON identique. Le tarif des appels API réussis est la base publiée de $0.002 par élément, et les échecs de validation ne consomment pas le solde prépayé.

Ce que vous envoyez et ce que vous recevez

Lorsque mode est omis, escape est la valeur par défaut, de sorte qu'un seul payload reste utile. Text manquant, objets non chaîne, valeurs mode ou quote non prises en charge, valeurs non lisibles comme booléen pour hex, chaînes plus longues que le maximum documenté, barres finales, échappements hex incomplets, noms de caractères universels incomplets, chiffres non hex, points de code illégaux et lettres d'échappement inconnues échouent avec invalid_input et un message clair en anglais. Le tarif API en succès est la base publiée de $0.002 par élément.

Où un échappeur de chaînes C apporte sa valeur

Comme cette capacité est un moteur d'analyse pur, le tarif API est la base publiée de $0.002 par élément réussi et la validation échouée ne consomme pas le solde.

Consulter la documentation complète du KIT →