String Fundamentals
Char Arrays:
- A char array is a sequence of characters stored in contiguous memory locations.
- Char arrays in C/C++ are used to store strings but are not the same as string datatype.
Declaration:
char arr[6] = {'H', 'e', 'l', 'l', 'o', '\0'}; // \0 is the null terminatorExample:
char name[] = "John"; // automatically adds '\0' at the end- Important Points:
- A char array must end with the null character
\0to represent a string. - If the null terminator is missing, it could lead to undefined behavior when used with string functions.
- A char array must end with the null character
Accessing and Modifying:
char str[] = "World";str[0] = 'w'; // Modifies the first charactercout << str; // Output: world2. Strings (String Class):
- The
stringclass is part of the C++ Standard Library and provides a more powerful way to handle strings. - It eliminates the need for manual memory management and provides many useful functions.
Declaration:
string str = "Hello";Example:
string s1 = "Hello";string s2 = "World";
// Concatenationstring s3 = s1 + " " + s2; // "Hello World"
// Accessing elementscout << s1[0]; // Output: H3. Difference between Char Arrays and Strings:
| Char Array | String Class |
|---|---|
| Requires manual memory management. | Memory management handled internally. |
Functions like strcpy, strlen needed. | Built-in methods like .length(), .substr() |
| Fixed size once declared. | Dynamic in size. |
Example: char arr[5] = "abc"; | Example: string s = "abc"; |
4. Common Operations on Char Arrays:
strlen(): Returns the length of the string (excluding\0).
char arr[] = "hello";cout << strlen(arr); // Output: 5strcpy(): Copies one string to another.
char src[] = "copy";char dest[10];strcpy(dest, src);strcmp(): Compares two strings lexicographically
char str1[] = "abc";char str2[] = "def";int result = strcmp(str1, str2); // result < 0 because "abc" < "def"5. Common String Class Functions:
.length(): Returns the length of the string
string str = "Hello";cout << str.length(); // Output: 5.substr(start, length): Extracts a substring.
string str = "Hello";string sub = str.substr(1, 3); // "ell".find(substring): Finds the first occurrence of a substring
string str = "Hello World";cout << str.find("World"); // Output: 66. Converting Between Char Arrays and Strings:
- From char array to string:
char arr[] = "hello";string str = string(arr); // Conversion to string- From string to char array
string str = "hello";char arr[10];strcpy(arr, str.c_str()); // Converts string to char arrayExample of both:
#include <iostream>#include <cstring> // For char array functions#include <string> // For string classusing namespace std;
int main() { // Char Array Example char arr[] = "Hello"; cout << "Char Array Length: " << strlen(arr) << endl;
// String Example string str = "World"; cout << "String Length: " << str.length() << endl;
return 0;}