2010-07-21 13 views
13

Sto scrivendo un programma per contare spazi vuoti, tabulazioni e nuove righe. Ricordo cosa sono le sequenze di escape per tabs e newline, ma per quanto riguarda gli spazi vuoti? \ B? O è quel backspace?Qual è la sequenza di escape C per gli spazi vuoti?

+0

http://www.asciitable.com/ – sipwiz

+1

@sipwiz - mentre \ 0x20 spesso è utilizzabile per gli spazi, c'è la questione delle diverse codifiche dei caratteri di cui preoccuparsi. Non tutte le codifiche a 8 bit sono basate su ASCII e un flusso di byte in questi giorni potrebbe essere una stringa unicode codificata. \ 0x20 è corretto per UTF-8, ovviamente, ma non per alcune altre codifiche. Questi * possono * essere rappresentati usando un altro tipo diverso da un array di caratteri, ma non necessariamente - gli array di caratteri come flussi di byte sono un modello così comune per la gestione degli I/O indipendentemente da ciò che rappresentano i byte. – Steve314

+0

@ Steve314 se l'OP sta usando un non-ASCII o la codifica UTF-8 non quindi una buona scommessa è che aveva già conoscere la risposta alla sua domanda dal momento che aveva già avuto un paio di cerchi per saltare attraverso :). – sipwiz

risposta

2

\b è backspace (0x8 ASCII). Non hai bisogno di una fuga per lo spazio regolare (ASCII 0x20). Puoi semplicemente usare ' '.

+0

In realtà, potrebbe essere utile per situazioni in cui lo spazio bianco è "normalizzato", come nei campi XML – glopes

1

'\ b' è backspace, e non si ha realmente bisogno di una sequenza di escape per gli spazi come '' farà bene.

6

Se si desidera verificare se un carattere è uno spazio, è possibile utilizzare la funzione isspace() da <ctype.h>. Nella locale predefinita C, controlla spazio, scheda, avanzamento modulo, nuova riga, ritorno a capo e scheda verticale.

Problemi correlati