What is String?
In programming languages, a “string” is a data type used to represent a sequence of character. Strings can contain letters, numbers, symbols, and spaces.
In C:
A string in C is essentially a one-dimensional array of characters, and it is terminated with a null character ('\0') that indicates the end of the string. This is important because C does not have a dedicated string type like std::string in C++, so the '\0' helps determine the length of the string and where it ends.
Characteristics and Operations associated with strings:
- Data Type: Strings are a data type that stores a collection of characters. Each character typically represents a single unit of text.
- Declaration and Initialization: Strings can be declared and initialized using various syntax.
- Immutable or Mutable: Strings can be either immutable or mutable, depending on the programming language. In an immutable string, once created, the content cannot be changed. In a mutable string, the content can be modified.
Operations on Strings:
- Concatenation: Combining two strings to create a new one.
- Substring: Extracting a portion of a string.
- Length/Size: Determining the number of characters in a string.
- Search and Replace: Finding and replacing specific substrings withing a string.
- Comparison: Checking if two strings are equal or determining their relative order.
- Conversion: Converting between string and other data types (e.g., converting a number to a string).
Different Types of String in C++
1️⃣ C-Style Strings (Character Arrays)
C++ inherits the concept of C-Style strings, represented.as arrays of characters terminated by a null character ('\0').
These strings are managed manually and need functions like strcpy, strcat, strlen, etc., from the <string.h> library.
Example:
char str[] = "Hello";
char str2[6] = {'H', 'e', 'l', 'l', 'o', '\0'}; // Manually adding the null character
2️⃣ std::string: (C++)
- C++ provides the
std::stringclass in the<string>header, which simplifies string handling by automatically managing memory and offering built-in functions. std::stringsupports concatenation, comparison, finding substrings, etc., without needing manual memory management.
Example:
#include <string>
std::string str = "Hello";
str += " World"; // Concatenation
Some useful methods include:
length()orsize()(to get string length)substr()(to get a substring)find()(to find a substring)append()(to append a string)
3️⃣ std::wstring: (Wide String C++)
A std::wstring is a wide-character string that uses wchar_t to store characters. It is typically used for handling Unicode characters or strings that require more than 1 byte per character.
Example:
#include <string>
std::wstring wstr = L"Hello"; // Wide string literal- Wide strings are useful for localization or working with non-ASCII character sets.
4️⃣ std::u16string and std::u32string: (C++)
These represent strings of UTF-16 and UTF-32 encoding, respectively, for handling Unicode characters with different byte lengths.
Example:
#include <string>
std::u16string u16str = u"Hello"; // UTF-16 encoded string
std::u32string u32str = U"Hello"; // UTF-32 encoded string
Raw string literals: preserving the essence
C++11 introduced raw string literals, allowing developers to define strings without escape characters. This is particularly useful for preserving the formatting of text, such as newline characters.

Join the discussion
Sign in with your account to post comments, reply to others, and participate in the conversation.
Login to Comment