tmp/tmp1oj1fxu9/{from.md → to.md}
RENAMED
|
@@ -1,21 +1,33 @@
|
|
| 1 |
##### Character sequences <a id="character.seq">[[character.seq]]</a>
|
| 2 |
|
|
|
|
|
|
|
| 3 |
The C standard library makes widespread use of characters and character
|
| 4 |
sequences that follow a few uniform conventions:
|
| 5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 6 |
- A *letter* is any of the 26 lowercase or 26 uppercase letters in the
|
| 7 |
-
basic
|
| 8 |
-
- The *decimal-point character* is the (single-byte)
|
| 9 |
-
functions that convert between a (single-byte)
|
| 10 |
-
a value of one of the floating-point types. It
|
| 11 |
-
character sequence to denote the beginning of a
|
| 12 |
-
represented in [[support]] through [[thread]]
|
| 13 |
-
period, `'.'`, which is also its value in the `"C"`
|
| 14 |
-
|
| 15 |
-
`setlocale(int, const char*)`,[^8] or by a change to a `locale`
|
| 16 |
-
object, as described in [[locales]] and [[input.output]].
|
| 17 |
- A *character sequence* is an array object [[dcl.array]] `A` that can
|
| 18 |
be declared as `T A[N]`, where `T` is any of the types `char`,
|
| 19 |
`unsigned char`, or `signed char` [[basic.fundamental]], optionally
|
| 20 |
qualified by any combination of `const` or `volatile`. The initial
|
| 21 |
elements of the array have defined contents up to and including an
|
|
@@ -37,10 +49,14 @@ and including the terminating null character.
|
|
| 37 |
|
| 38 |
A *static NTBS* is an NTBS with static storage duration.[^10]
|
| 39 |
|
| 40 |
###### Multibyte strings <a id="multibyte.strings">[[multibyte.strings]]</a>
|
| 41 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 42 |
A *null-terminated multibyte string*, or NTMBS, is an NTBS that
|
| 43 |
constitutes a sequence of valid multibyte characters, beginning and
|
| 44 |
ending in the initial shift state.[^11]
|
| 45 |
|
| 46 |
A *static NTMBS* is an NTMBS with static storage duration.
|
|
|
|
| 1 |
##### Character sequences <a id="character.seq">[[character.seq]]</a>
|
| 2 |
|
| 3 |
+
###### General <a id="character.seq.general">[[character.seq.general]]</a>
|
| 4 |
+
|
| 5 |
The C standard library makes widespread use of characters and character
|
| 6 |
sequences that follow a few uniform conventions:
|
| 7 |
|
| 8 |
+
- Properties specified as *locale-specific* may change during program
|
| 9 |
+
execution by a call to `setlocale(int, const char*)` [[clocale.syn]],
|
| 10 |
+
or by a change to a `locale` object, as described in [[locales]] and
|
| 11 |
+
[[input.output]].
|
| 12 |
+
- The *execution character set* and the *execution wide-character set*
|
| 13 |
+
are supersets of the basic literal character set [[lex.charset]]. The
|
| 14 |
+
encodings of the execution character sets and the sets of additional
|
| 15 |
+
elements (if any) are locale-specific. Each element of the execution
|
| 16 |
+
wide-character set is encoded as a single code unit representable by a
|
| 17 |
+
value of type `wchar_t`. \[*Note 1*: The encodings of the execution
|
| 18 |
+
character sets can be unrelated to any literal
|
| 19 |
+
encoding. — *end note*]
|
| 20 |
- A *letter* is any of the 26 lowercase or 26 uppercase letters in the
|
| 21 |
+
basic character set.
|
| 22 |
+
- The *decimal-point character* is the locale-specific (single-byte)
|
| 23 |
+
character used by functions that convert between a (single-byte)
|
| 24 |
+
character sequence and a value of one of the floating-point types. It
|
| 25 |
+
is used in the character sequence to denote the beginning of a
|
| 26 |
+
fractional part. It is represented in [[support]] through [[thread]]
|
| 27 |
+
and [[depr]] by a period, `'.'`, which is also its value in the `"C"`
|
| 28 |
+
locale.
|
|
|
|
|
|
|
| 29 |
- A *character sequence* is an array object [[dcl.array]] `A` that can
|
| 30 |
be declared as `T A[N]`, where `T` is any of the types `char`,
|
| 31 |
`unsigned char`, or `signed char` [[basic.fundamental]], optionally
|
| 32 |
qualified by any combination of `const` or `volatile`. The initial
|
| 33 |
elements of the array have defined contents up to and including an
|
|
|
|
| 49 |
|
| 50 |
A *static NTBS* is an NTBS with static storage duration.[^10]
|
| 51 |
|
| 52 |
###### Multibyte strings <a id="multibyte.strings">[[multibyte.strings]]</a>
|
| 53 |
|
| 54 |
+
A *multibyte character* is a sequence of one or more bytes representing
|
| 55 |
+
the code unit sequence for an encoded character of the execution
|
| 56 |
+
character set.
|
| 57 |
+
|
| 58 |
A *null-terminated multibyte string*, or NTMBS, is an NTBS that
|
| 59 |
constitutes a sequence of valid multibyte characters, beginning and
|
| 60 |
ending in the initial shift state.[^11]
|
| 61 |
|
| 62 |
A *static NTMBS* is an NTMBS with static storage duration.
|