From Rosetta Code
Revision as of 07:54, 9 December 2021 by Peak (talk | contribs) (correct numerous errors)

In computer programming, a string is a finite sequence of characters or symbols [1]. Most programming languages handle them in a similar way, and have language constructs for creating, modifying, and displaying them.

How Strings Are Stored In Memory

Strings are encoded using one or more encoding methods, such as ASCII or Unicode, a scheme that maps a set of glyphs to specific numeric values. There are standardized encoding methods to support portability and interoperability.

For example, this is the encoding of "Hello World" in ASCII:


Compilers for languages such as C add an extra "null" byte (0x00) at the end of the string when the string is stored in computer memory. This byte is called the null terminator and is added to make it easy for the computer to determine the end of the string. Note the difference between the representation of a string in a computer program (typically with quotation marks) and the representation in computer memory (typically with a null terminator or byte count).

Control Codes

The first 32 characters of ASCII and Unicode are reserved for control codes. Most of these are relics of the old teletype days and many are no longer of use to most computers today, but a few of them are still used widely (like 0 for the null terminator, 8 for backspace, etc.) Most of them are nowhere to be found on your keyboard; they are used internally by the computer as a signal to perform certain tasks, or to mark the beginning or end of various data.

Escape Character

An escape character is a distinguished character used to signal that the following character in a string is to be interpreted in a special way. Without escape characters, we'd run into a problem if we wanted quotation marks to appear in our string when printed to the screen, since quotation marks often mark the beginning and end of the string literal. The same is true if we wanted to have a string that happened to include the comment character in it. In many languages, the backslash \ is the escape character, but this varies depending on the language.

Escape characters are also used to encode special instructions that otherwise the user would have an extremely difficult time supplying to the computer. In C and many other languages, the two character sequence \n represents the control code for a new line. Thus if you wanted to actually print the string "\n" with two characters, you would need to have an additional escape character in front of it, like this: "\\n"

Substitution Characters

This is a similar concept to escape characters, but instead allows you to print a variable value, such as a number or the result of some calculation. The syntax for doing so will vary, but here's an example from C: <lang C> printf("The sum of A plus B is %d", sum(a+b)); </lang>

Here, % is the substitution character, and d tells the computer to substitute with a decimal value. The expression after the comma is what will be replacing the %d. Nearly all languages with a built-in print function will handle conversion of numeric data to text characters for you - it's only assembly that doesn't do this automatically I believe.