You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 7 Next »

Strings are a fundamental concept in software engineering, but they are not a built-in type in C.  A string is a contiguous sequence of characters terminated by and including the first null. character. The C programming language supports the following types of strings:  single byte character strings, multibyte character strings, and wide character strings. Single byte and multibyte character strings are both described as null-terminated byte strings.  

Null-terminated byte strings consist of a contiguous sequence of characters terminated by and including the first null character. A pointer to a null-terminated byte string points to its initial character. The length of a string is the number of bytes preceding the null character, and the value of a string is the sequence of the values of the contained characters, in order.

A wide string is a contiguous sequence of wide characters terminated by and including the first null wide character. A pointer to a wide string points to its initial (lowest addressed) wide character. The length of a wide string is the number of wide characters preceding the null wide character and the value of a wide string is the sequence of code values of the contained wide characters, in order.

Recommendations

Use TR 24731 for remediation of existing string manipulation code

Use managed strings for development of new string manipulation code

Rules

Do not attempt to modify string literals
Do not assume bounded input
Allocated adequate space when copying bounded strings
Guarantee that all strings are null-terminated

  • No labels