Strings in C++
In this lesson: Use std::string in C++ — input, length, concatenation, substr, find, compare — with output. In Hindi & English.
Strings in C++
A string is text — a sequence of characters. Modern C++ gives you the std::string type (from <string>), which manages the text and its memory for you. It is far easier than the old C-style character arrays.
Creating strings
#include <iostream>
#include <string>
using namespace std;
int main() {
string name = "Amit";
string empty; // starts as ""
cout << name << "\n";
return 0;
}Amit
Reading string input
Use getline to read a full line with spaces; cin >> reads only one word:
string full; cout << "Enter full name: "; getline(cin, full); cout << "Hello, " << full << "\n";
Output:
Hello, Amit Kumar
Joining strings
Use + or += to join strings — no special functions needed:
string first = "Amit", last = "Kumar"; string full = first + " " + last; full += "!"; cout << full;
Amit Kumar!
Length and characters
string s = "Hello"; cout << s.length() << "\n"; // 5 cout << s[0] << "\n"; // H s[0] = 'J'; // change a character cout << s; // Jello
5
H
Jello
Useful methods
| Method | What it does |
|---|---|
s.length() / s.size() | Number of characters |
s.substr(pos, len) | Extract part of the string |
s.find("x") | Position of a substring (or npos) |
s.empty() | True if the string has no characters |
s.append("x") | Add to the end |
A note on C-style strings
C++ also supports old C-style strings — arrays of char ending in a '\0' null character, used with functions from <cstring>. You may see them in older code, but std::string is safer and preferred for new programs.
Common mistakes
- Forgetting
#include <string>when usingstd::string. - Using
cin >> sfor a full name and capturing only one word. - Mixing
std::stringand C-style functions incorrectly. - Going out of range with
s[i]; use.at(i)for a checked access.
Read a full name with getline, then print its length, its first character, and the name in the form "Last, First" using substr and find.
Summary
- Use
std::stringfrom<string>for text. getline(cin, s)reads a whole line;cin >> sreads one word.- Join strings with
+and+=. .length()gives the size;s[i]accesses characters.- Prefer
std::stringover C-style char arrays in new code.
Frequently Asked Questions
What is a string in C++?
std::string type from the <string> header, which stores and manages text for you. It can grow and shrink automatically, unlike the older C-style character arrays, making text handling much easier and safer.How do you read a string with spaces in C++?
getline(cin, str), which reads a whole line including spaces until you press Enter. The extraction operator cin >> str stops at the first space, so it only captures one word.How do you concatenate strings in C++?
std::string you simply use the + operator or +=, for example string full = first + " " + last;. This joins the pieces into one new string, which is far simpler than the functions needed for C-style strings.How do you find the length of a string in C++?
.length() or the equivalent .size() on a std::string, such as name.length(). Both return the number of characters, and you can access individual characters with name[i] or name.at(i).What is the difference between std::string and a C-style string in C++?
std::string is a managed object that handles its own memory and size, while a C-style string is a plain array of char ending in a null character. std::string is safer and easier, so it is preferred unless you are interfacing with older C code.