Escape stringhe C
Una virgoletta, un backslash o un a capo fuori posto rompono una stringa C; lo strumento trasforma Hello "world", un a capo e line 2 in Hello \"world\"\nline 2, pronto da incollare nel codice. Annulla anche gli escape e si ferma su quelli malformati. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- Testo
- Hello "world" line 2
- Modalità di calcolo
- Escape
- Virgolette
- Double
- Risultato
- Hello \"world\"\nline 2
- Lunghezza
- 23
- Letterale
- "Hello \"world\"\nline 2"
Inserire testo libero in un letterale di stringa C o C++ è un classico rischio: una virgoletta doppia chiude la stringa, un backslash nudo inghiotte il carattere successivo, una nuova riga grezza è un errore di sintassi, e escape ottali o esadecimali che nei log sembrano corretti possono risultare troncati o illegali quando si incollano nel codice sorgente. Questo escape di stringhe C trasforma il testo semplice in un corpo di letterale sicuro (e in un letterale tra virgolette pronto da incollare) e inverte la stessa mappa quando Lei deve recuperare i caratteri originali. La modalità escape gestisce lo stile di virgolette scelto—doppie per stringhe "..." ordinarie o singole per costanti di carattere—oltre a backslash, gli escape di controllo consueti e, in opzione, forme hex o di carattere universale per il non ASCII.
Come funzionano in pratica gli escape delle stringhe C e C++
Un letterale di stringa C o C++ è una sequenza di caratteri tra virgolette doppie; le costanti di carattere usano virgolette singole. All'interno, un backslash avvia un escape: \\ diventa un solo backslash, \" chiude in sicurezza una stringa tra virgolette doppie, \' fa lo stesso per le costanti di carattere, e \? esiste affinché le toolchain sensibili ai trigrafi non interpretino male un punto interrogativo.
Gli escape di controllo nominati sono standard in C e C++: \n è un line feed, \r un ritorno a capo, \t una tabulazione, più \a alert, \b backspace, \f form feed e \v tabulazione verticale. Due forme numeriche contano ogni giorno nel codice di sistema: un escape ottale è un backslash seguito da una a tre cifre ottali (così \0 è un byte nullo e \101 è la lettera A), e un escape esadecimale è \x seguito da una o più cifre hex.
C99 e C++ accettano anche i nomi di carattere universali \uXXXX e \UXXXXXXXX per sorgenti Unicode portabili. Questa capacità applica tali regole in modo deterministico. In modalità escape scorre ogni unità di codice, sostituisce i caratteri speciali con l'escape sicuro più corto per lo stile di virgolette scelto, usa i controlli nominati quando esistono, ricorre a \xHH per altri byte C0 e, opzionalmente, riscrive ogni carattere non ASCII quando hex è true.
In modalità unescape analizza le stesse sequenze di nuovo in caratteri e rifiuta backslash finali, \x o nomi universali incompleti, cifre non hex, punti di codice fuori intervallo ed escape di lettere sconosciute che sarebbero comportamento indefinito in una lettura rigorosa del linguaggio.
Cosa invia e cosa riceve in risposta
Invii un campo stringa obbligatorio chiamato text e i campi opzionali mode, quote e hex. La modalità escape converte il testo semplice in un corpo di letterale C/C++ memorizzato in result e restituisce anche literal: lo stesso corpo avvolto nelle virgolette scelte da incollare nel codice. La modalità unescape inverte le sequenze di escape in text e restituisce la stringa semplice recuperata in result senza campo literal.
Quote ha predefinito double; imposti single quando la destinazione è una costante di carattere o una stringa tra virgolette singole in un dialetto affine—escape forza l'escape solo per quel delimitatore, così gli apostrofi possono restare grezzi nei corpi tra virgolette doppie. La risposta ripete mode, quote, hex, il text originale, result e la lunghezza di result. I fallimenti di validazione non consumano il saldo prepagato.
Controlli classici includono l'escape di un saluto con virgolette incorporate e una nuova riga, l'unescape di un corpo che usa \xE9 per é o \101 per A, l'escape con hex true così il non ASCII diventa forme \x o \u, e il rifiuto di una stringa che termina con un backslash nudo.
Dove un escape di stringhe C rende davvero
I team di firmware embedded e driver di dispositivo incollano dump di protocollo che già contengono escape ottali e hex e necessitano di un percorso unescape che fallisca in modo rumoroso su sequenze \x troncate invece di inventare byte. I siti di documentazione e ricette che mostrano esempi da copiare e incollare necessitano di un percorso di escape affidabile affinché i campioni dell'utente restino letterali C validi.
Le pipeline QA e CI confrontano vettori dorati di escape e unescape tra host affinché una nuova riga sia sempre \n sotto virgolette doppie e mai una riga grezza che fallirebbe la compilazione. Gli autori di materiale didattico che insegnano la sintassi delle stringhe C vogliono esempi che menzionino esplicitamente ottale e hex, che è l'intento di ricerca catturato da questa pagina.
Se Lei necessita di escape di stringhe JavaScript, entità HTML o codifica percentuale URL, li tratti come intenti e landing separate invece di sovraccaricare questa pagina dell'escape di stringhe C.
Casi d'uso
Letterali di stringa sicuri nel codice C/C++ generato
Escapi titoli, messaggi e valori di configurazione in testo libero prima di scriverli in letterali C tra virgolette doppie o costanti di carattere tra virgolette singole.
Decodificare escape ottali e hex dai log
Unescapi corpi di stringa in stile C da log firmware, ticket e file dorati in testo leggibile, con fallimenti rigorosi su escape incompleti o illegali.
Riscrittura hex solo ASCII per toolchain
Escapi con hex true così i caratteri non ASCII diventano sequenze \xHH, \uXXXX o \UXXXXXXXX adatte a repository solo ASCII e compilatori rigorosi.
Domande frequenti
Qual è la differenza tra result e literal?
Result è il corpo escapato senza virgolette circostanti. Literal (solo modalità escape) avvolge quel corpo nello stile di virgolette scelto per incollare una stringa C/C++ completa nel codice sorgente.
Posso sia escapare sia unescapare?
Sì. Imposti mode su escape (predefinito) per codificare testo semplice, o mode su unescape per recuperare testo da un corpo di letterale di stringa C/C++.
Quali stili di virgolette sono supportati?
Double (predefinito) per letterali di stringa ordinari e single per lo stile delle costanti di carattere. La modalità escape escapa solo il delimitatore che Lei ha scelto.
Cosa succede se una sequenza di escape è malformata?
Nulla viene addebitato per i fallimenti di validazione.
Quanto costa?
Lo strumento del browser è gratuito e gira in locale.
Strumenti correlati
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo stack
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"}'const res = await fetch("https://api.kit.forhosting.com/enc/c-escape", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Hello \"world\"\nline 2"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/c-escape",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Hello \"world\"\nline 2"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/c-escape", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Hello \\"world\\"\\nline 2"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Hello \"world\"\nline 2"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/c-escape", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Esempio di richiesta
{
"text": "Hello \"world\"\nline 2"
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.c_escape",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |
Note tecniche
La modalità unescape comprende \n, \r, \t, \\, \", \', \?, \a, \b, \f, \v, ottale da una a tre cifre, \xHH, \uXXXX e \UXXXXXXXX, e fallisce subito con invalid_input su backslash finali, hex incompleto o lettere di escape sconosciute, invece di inventare spazzatura semi-decodificata.
Come funzionano in pratica gli escape delle stringhe C e C++
Il percorso è puro lavoro su stringhe senza rete, senza semi casuali e senza timestamp di orologio, così ingressi identici producono sempre JSON identico. Il prezzo delle chiamate API riuscite è la base pubblicata di $0.002 per elemento, e i fallimenti di validazione non consumano il saldo prepagato.
Cosa invia e cosa riceve in risposta
Quando mode è omesso, escape è il predefinito, così un solo payload resta utile. Text assente, oggetti non stringa, valori mode o quote non supportati, valori non leggibili come booleano per hex, stringhe più lunghe del massimo documentato, backslash finali, escape hex incompleti, nomi di carattere universali incompleti, cifre non hex, punti di codice illegali e lettere di escape sconosciute falliscono con invalid_input e un messaggio chiaro in inglese. Il prezzo API in successo è la base pubblicata di $0.002 per elemento.
Dove un escape di stringhe C rende davvero
Poiché questa capacità è un motore di parse puro, il prezzo API è la base pubblicata di $0.002 per elemento riuscito e la validazione fallita non consuma saldo.