In C++, the std::string class (part of the Standard Library) provides a powerful and flexible way to handle strings. It is included in the <string> header and replaces traditional C-style character arrays (char[]).
1️⃣ Declaring and Initializing a String
Example: Creating Strings
#include <iostream>
#include <string>
using namespace std;
int main() {
string str1 = "Hello"; // Direct initialization
string str2("World"); // Constructor initialization
string str3; // Empty string
str3 = "C++ Strings"; // Assignment
cout << str1 << " " << str2 << " " << str3 << endl;
return 0;
}
Output:
Hello World C++ Strings
2️⃣ Taking Input Using std::string
Using cin (Single Word Input)
#include <iostream>
#include <string>
using namespace std;
int main() {
string name;
cout << "Enter your name: ";
cin >> name; // Accepts only a single word
cout << "Hello, " << name << "!" << endl;
return 0;
}
📌 Note: cin stops reading at spaces. If you enter "John Doe", only "John" is stored.
Using getline() (Multiple Word Input)
#include <iostream>
#include <string>
using namespace std;
int main() {
string fullName;
cout << "Enter your full name: ";
getline(cin, fullName);
cout << "Hello, " << fullName << "!" << endl;
return 0;
}
📌 Tip: If getline() is used after cin, use cin.ignore() to clear the newline character.
3️⃣ Common String Operations
🔹 String Concatenation (+ Operator)
string first = "Hello";
string second = "World";
string result = first + " " + second;
cout << result << endl; // Output: Hello World
🔹 Getting String Length (.length() or .size())
string text = "Programming";
cout << "Length: " << text.length() << endl; // Output: 11
🔹 Accessing Characters ([] or .at())
string word = "Code";
cout << word[0] << endl; // Output: C
cout << word.at(1) << endl; // Output: o
🔹 Modifying Strings
string text = "Hello";
text.append(" C++"); // Adds " C++" to the string
cout << text << endl; // Output: Hello C++
🔹 Substring Extraction (substr())
string sentence = "Hello, World!";
string sub = sentence.substr(7, 5); // Extracts "World"
cout << sub << endl;
🔹 Finding a Substring (find())
string sentence = "C++ programming is fun!";
size_t pos = sentence.find("programming");
if (pos != string::npos)
cout << "Found at position: " << pos << endl;
else
cout << "Not found" << endl;
🔹 Erasing a Part of the String (erase())
string str = "Hello World!";
str.erase(5, 6); // Removes " World"
cout << str << endl; // Output: Hello
4️⃣ String Comparison
Using ==, <, > Operators
string str1 = "Apple";
string str2 = "Banana";
if (str1 == str2)
cout << "Strings are equal";
else if (str1 < str2)
cout << str1 << " comes before " << str2;
else
cout << str2 << " comes before " << str1;
📌 Note: String comparisons are lexicographical (dictionary order).
5️⃣ Converting Between std::string and char[]
String to C-String (c_str())
string cppString = "Hello";
const char* cString = cppString.c_str(); // Convert to C-style string
cout << cString << endl;
C-String to std::string
char cstr[] = "Hello";
string cppString = cstr; // Implicit conversion
cout << cppString << endl;
6️⃣ Checking if a String is Empty
string s = "";
if (s.empty())
cout << "String is empty!";
Conclusion
The std::string class provides powerful and flexible ways to work with text in C++. It eliminates the need for manual memory management (like char[]) and offers easy-to-use functions.
Would you like an example of reversing a string using std::string? 🚀
0 Comments