Strings in C++
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.
C++ में strings
String text है — characters का एक क्रम। आधुनिक C++ आपको std::string type देता है (<string> से), जो आपके लिए text और उसकी memory प्रबंधित करता है। यह पुरानी C-शैली के character arrays से कहीं आसान है।
Strings बनाना
#include <iostream>
#include <string>
using namespace std;
int main() {
string name = "Amit";
string empty; // "" se shuru hota hai
cout << name << "\n";
return 0;
}Amit
String input पढ़ना
Spaces वाली पूरी line पढ़ने को getline इस्तेमाल करें; cin >> केवल एक शब्द पढ़ता है:
string full; cout << "Enter full name: "; getline(cin, full); cout << "Hello, " << full << "\n";
Output:
Hello, Amit Kumar
Strings जोड़ना
Strings जोड़ने को + या += इस्तेमाल करें — कोई विशेष functions नहीं चाहिए:
string first = "Amit", last = "Kumar"; string full = first + " " + last; full += "!"; cout << full;
Amit Kumar!
Length और characters
string s = "Hello"; cout << s.length() << "\n"; // 5 cout << s[0] << "\n"; // H s[0] = 'J'; // ek character badlein cout << s; // Jello
5
H
Jello
उपयोगी methods
| Method | यह क्या करता है |
|---|---|
s.length() / s.size() | Characters की संख्या |
s.substr(pos, len) | String का हिस्सा निकालें |
s.find("x") | Substring की स्थिति (या npos) |
s.empty() | True अगर string में कोई character न हो |
s.append("x") | अंत में जोड़ें |
C-style strings पर एक नोट
C++ पुरानी C-style strings भी समर्थन करता है — char के arrays जो '\0' null character पर खत्म होते हैं, <cstring> के functions के साथ इस्तेमाल। आप इन्हें पुराने code में देख सकते हैं, पर नए programs के लिए std::string सुरक्षित और पसंदीदा है।
आम गलतियाँ
std::stringइस्तेमाल करते समय#include <string>भूलना।- पूरे नाम के लिए
cin >> sइस्तेमाल करना और केवल एक शब्द पकड़ना। std::stringऔर C-style functions को गलत तरीके से मिलाना।s[i]से range के बाहर जाना; जाँची गई access के लिए.at(i)इस्तेमाल करें।
एक पूरा नाम getline से पढ़ें, फिर उसकी length, उसका पहला character, और नाम "Last, First" रूप में substr तथा find इस्तेमाल करके print करें।
सारांश
- Text के लिए
<string>सेstd::stringइस्तेमाल करें। getline(cin, s)पूरी line पढ़ता है;cin >> sएक शब्द।- Strings को
+और+=से जोड़ें। .length()size देता है;s[i]characters access करता है।- नए code में C-style char arrays के बजाय
std::stringपसंद करें।
अक्सर पूछे जाने वाले प्रश्न (FAQ)
C++ में string क्या है?
<string> header के std::string type का एक object है, जो आपके लिए text संग्रहीत और प्रबंधित करता है। यह अपने आप बढ़-घट सकता है, पुरानी C-शैली के character arrays के विपरीत, text संभालना कहीं आसान और सुरक्षित बनाते हुए।C++ में spaces वाली string कैसे पढ़ें?
getline(cin, str) इस्तेमाल करें, जो Enter दबाने तक spaces सहित पूरी line पढ़ता है। Extraction operator cin >> str पहले space पर रुक जाता है, तो यह केवल एक शब्द पकड़ता है।C++ में strings को concatenate कैसे करें?
std::string के साथ आप बस + operator या += इस्तेमाल करते हैं, जैसे string full = first + " " + last;। यह टुकड़ों को एक नई string में जोड़ता है, जो C-शैली strings के लिए ज़रूरी functions से कहीं सरल है।C++ में string की length कैसे पता करें?
std::string पर .length() या समकक्ष .size() call करें, जैसे name.length()। दोनों characters की संख्या लौटाते हैं, और आप name[i] या name.at(i) से अलग-अलग characters access कर सकते हैं।C++ में std::string और C-style string में क्या अंतर है?
std::string एक प्रबंधित object है जो अपनी memory और size खुद संभालता है, जबकि C-style string char का एक सादा array है जो null character पर खत्म होता है। std::string सुरक्षित और आसान है, तो यह पसंदीदा है जब तक आप पुराने C code से interface न कर रहे हों।