2011-12-16 11 views
9

¿Cuál es el propósito del carácter Unicode 'RETROCESO' (U + 0008) en la programación? ¿Para qué aplicaciones se puede usar?¿Cuál es el propósito de Unicode "Retroceso" U + 0008?

+3

Si no puede determinar el propósito de un símbolo Unicode en particular, probablemente entre en la categoría de "entretenimiento personal", al igual que U + 2603 y U + 1F4A9. :-) –

+1

En realidad, hay un propósito real para ambos personajes: compatibilidad total con otros juegos de caracteres (¡ambos de origen japonés, en este caso!) Que incluyen esos caracteres. – duskwuff

Respuesta

12

Um, es un carácter de retroceso.

En salida a un terminal, normalmente mueve el cursor una posición hacia la izquierda (según la configuración). En la entrada, normalmente borra el último carácter ingresado (dependiendo de la aplicación y la configuración del terminal), aunque el carácter DEL/DELETE también se usa para este propósito. Típicamente se puede introducir presionando Retroceso o Control-H

nota de que su acción de eliminación de caracteres se produce sólo en una pantalla, no en la memoria. Una cadena dentro de un programa en ejecución puede contener casi cualquier secuencia de caracteres (dependiendo tal vez del idioma), incluido el retroceso. En ese contexto, generalmente es solo otro personaje. Por ejemplo, en C strlen("abcd\b") es 5, no 3.

En C y en varios otros idiomas, se representa en la fuente del programa como '\b'. A veces se muestra como ^H.

Todo esto se aplica ya sea que se represente como Unicode o no. El carácter de retroceso es común para la mayoría de los conjuntos de caracteres: ASCII, Latin-1, las diversas representaciones de Unicode, incluso EBCDIC tiene un carácter de retroceso (pero con un código diferente).

+0

Entonces agregar \ b a una cadena es más eficiente que llamar a string = substring() o algo así? ¿Esta cadena "this \ b" tendrá una longitud de 3 o 5? – skibulk

+2

'" this \ b "' tiene una longitud de 5. Agregar un carácter de retroceso a una cadena no elimina los caracteres de la cadena. Su acción de borrar caracteres ocurre en la pantalla, no en la memoria. –

+1

Tenga en cuenta que cuando '\ b' se escribe en una impresora en lugar de en una pantalla, se sobrescribe en lugar de borrarse. Esto permitió una forma primitiva de implementar subrayado ('A \ b_'), negrita (' A \ bA') o caracteres acentuados ('n \ b ~'). – dan04

Cuestiones relacionadas