Escapador de strings C
Uma aspa, uma barra invertida ou uma quebra de linha soltas quebram uma string em C; a ferramenta transforma Hello "world", uma quebra de linha e line 2 em Hello \"world\"\nline 2, pronto para colar no código. Também desfaz escapes e para nos malformados. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Exemplo resolvido
- Texto
- Hello "world" line 2
- Modo de cálculo
- Escape
- Aspas
- Double
- Resultado
- Hello \"world\"\nline 2
- Comprimento
- 23
- Literal
- "Hello \"world\"\nline 2"
Incorporar texto livre dentro de um literal de string em C ou C++ é um erro clássico: uma aspas duplas encerra a string, uma barra invertida solta engole o próximo caractere, uma quebra de linha bruta é erro de sintaxe, e escapes octais ou hexadecimais que parecem corretos em um log podem ser truncados ou ilegais ao colar no código-fonte. Este escapador de strings C transforma texto simples em um corpo de literal seguro (e em um literal entre aspas pronto para colar) e inverte o mesmo mapa quando você precisa recuperar os caracteres originais. O modo escape respeita o estilo de aspas escolhido—duplas para strings "..." comuns ou simples para constantes de caractere—além de barras invertidas, os escapes de controle usuais e, opcionalmente, formas hex ou de caractere universal para não ASCII.
Como os escapes de string C e C++ funcionam na prática
Um literal de string em C ou C++ é uma sequência de caracteres entre aspas duplas; constantes de caractere usam aspas simples. Dentro dessa sequência, uma barra invertida inicia um escape: \\ vira uma barra, \" fecha com segurança uma string entre aspas duplas, \' faz o mesmo para constantes de caractere, e \? existe para que toolchains sensíveis a trigrafos não leiam mal um ponto de interrogação.
Escapes de controle nomeados são padrão em C e C++: \n é avanço de linha, \r retorno de carro, \t tabulação, além de \a alerta, \b backspace, \f form feed e \v tabulação vertical. Duas formas numéricas importam todos os dias em código de sistemas: um escape octal é uma barra seguida de um a três dígitos octais (assim \0 é um byte nulo e \101 é a letra A), e um escape hexadecimal é \x seguido de um ou mais dígitos hex.
C99 e C++ também aceitam nomes de caractere universal \uXXXX e \UXXXXXXXX para fonte Unicode portátil. Esta capacidade aplica essas regras de forma determinística. No modo escape percorre cada unidade de código, substitui caracteres especiais pelo escape seguro mais curto para o estilo de aspas selecionado, usa controles nomeados quando existem, recorre a \xHH para outros bytes C0 e, opcionalmente, reescreve todo caractere não ASCII quando hex é true.
No modo unescape analisa as mesmas sequências de volta a caracteres e rejeita barras finais, \x ou nomes universais incompletos, dígitos não hex, pontos de código fora de faixa e escapes de letra desconhecidos que seriam comportamento indefinido em uma leitura estrita da linguagem.
O que você envia e o que recebe de volta
Envie um campo string obrigatório chamado text e campos opcionais mode, quote e hex. O modo escape converte texto simples em um corpo de literal C/C++ armazenado em result e também devolve literal: o mesmo corpo envolvido nas aspas escolhidas para colar no código. O modo unescape reverte sequências de escape em text e devolve a string simples recuperada em result sem campo literal.
Quote tem padrão double; use single quando o destino for uma constante de caractere ou uma string entre aspas simples em um dialeto relacionado—o escape só força escape para esse delimitador, de modo que apóstrofos possam permanecer brutos em corpos entre aspas duplas. A resposta ecoa mode, quote, hex, o text original, result e o comprimento de result. Falhas de validação não consomem saldo pré-pago.
Verificações clássicas incluem escapar uma saudação com aspas embutidas e uma quebra de linha, desescapar um corpo que usa \xE9 para é ou \101 para A, escapar com hex true para que não ASCII vire formas \x ou \u, e rejeitar uma string que termina com barra solta.
Onde um escapador de strings C se paga
Equipes de firmware embarcado e drivers de dispositivo colam dumps de protocolo que já contêm escapes octais e hex e precisam de um caminho de unescape que falhe de forma ruidosa em sequências \x truncadas em vez de inventar bytes. Sites de documentação e receitas que mostram exemplos para copiar e colar precisam de um caminho de escape confiável para que amostras do usuário continuem literais C válidos.
Pipelines de QA e CI comparam vetores dourados de escape e unescape entre hosts para que uma quebra de linha seja sempre \n sob aspas duplas e nunca uma quebra bruta que falharia na compilação. Autores de material didático que ensinam sintaxe de strings em C querem exemplos que mencionem octal e hex de forma explícita, que é a intenção de busca capturada por esta página.
Se você precisa de escapes de string JavaScript, entidades HTML ou codificação percentual de URL, trate-os como intenções e landings separadas em vez de sobrecarregar esta página do escapador de strings C.
Casos de uso
Literais de string seguros em código C/C++ gerado
Escape títulos, mensagens e valores de configuração de texto livre antes de escrevê-los em literais C entre aspas duplas ou constantes de caractere entre aspas simples.
Decodificar escapes octais e hex a partir de logs
Desescape corpos de string no estilo C de logs de firmware, tickets e arquivos dourados de volta a texto legível, com falhas rígidas em escapes incompletos ou ilegais.
Reescrita hex só ASCII para toolchains
Escape com hex true para que caracteres não ASCII virem sequências \xHH, \uXXXX ou \UXXXXXXXX adequadas a repositórios só ASCII e compiladores rigorosos.
Perguntas frequentes
Qual é a diferença entre result e literal?
Result é o corpo escapado sem aspas ao redor. Literal (somente no modo escape) envolve esse corpo no estilo de aspas escolhido para você colar uma string C/C++ completa no código-fonte.
Posso escapar e desescapar?
Sim. Defina mode como escape (padrão) para codificar texto simples, ou mode como unescape para recuperar texto a partir de um corpo de literal de string C/C++.
Quais estilos de aspas são suportados?
Double (padrão) para literais de string comuns e single para o estilo de constantes de caractere. O modo escape só escapa o delimitador que você escolheu.
Quanto custa?
A ferramenta do navegador é gratuita e roda localmente.
O que acontece se uma sequência de escape estiver malformada?
A conversão de volta para imediatamente e diz o que está errado, sem adivinhar. Barra invertida no final, \x ou nome universal incompleto, dígito que não é hexadecimal, ponto de código fora do intervalo ou letra desconhecida após a barra são recusados.
Ferramentas relacionadas
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
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)Exemplo de requisição
{
"text": "Hello \"world\"\nline 2"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.c_escape",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |
Notas técnicas
O modo unescape entende \n, \r, \t, \\, \", \', \?, \a, \b, \f, \v, octal de um a três dígitos, \xHH, \uXXXX e \UXXXXXXXX, e falha imediatamente com invalid_input em barras finais, hex incompleto ou letras de escape desconhecidas, em vez de inventar lixo semidecodificado.
Como os escapes de string C e C++ funcionam na prática
O caminho é trabalho puro de string sem rede, sem sementes aleatórias e sem carimbos de relógio, de modo que entradas idênticas sempre produzem JSON idêntico. O preço das chamadas de API bem-sucedidas é a base publicada de US$ 0,002 por item, e falhas de validação não consomem saldo pré-pago.
O que você envia e o que recebe de volta
Quando mode é omitido, escape é o padrão, de modo que um único payload ainda faz trabalho útil. Text ausente, objetos que não são string, valores de mode ou quote não suportados, valores que não podem ser lidos como booleano para hex, strings maiores que o máximo documentado, barras finais, escapes hex incompletos, nomes de caractere universal incompletos, dígitos não hex, pontos de código ilegais e letras de escape desconhecidas falham com invalid_input e uma mensagem clara em inglês. O preço da API em sucesso é a base publicada de US$ 0,002 por item.
Onde um escapador de strings C se paga
Como esta capacidade é um motor de parse puro, o preço da API é a base publicada de US$ 0,002 por item bem-sucedido e a validação falha não consome saldo.
Perguntas técnicas
O que acontece se uma sequência de escape estiver malformada?
Unescape falha com invalid_input, indicando a posição e a sequência inválida (por exemplo barra final, \xHH incompleto ou escape de letra desconhecido). Nada é cobrado por falhas de validação.