std::wstring बनाम std::string: C++ में Unicode और मल्टीबाइट स्ट्रिंग का उपयोग कब करें?
नमस्ते! मैंने हाल ही में C++ सीखना शुरू किया है और मुझे std::string और std::wstring के बीच चयन की समस्या का सामना करना पड़ा। दोनों प्रकार टेक्स्ट के साथ काम करने के लिए हैं, लेकिन मुझे समझ नहीं आता कि अंतर क्या है और कब क्या उपयोग करना चाहिए।
यहाँ एक सरल उदाहरण है: मैं एक प्रोग्राम लिख रहा हूँ जो रूसी अक्षरों के साथ काम करता है:
```cpp
#include
#include
int main() {
std::string str = "Привет, мир!";
std::wstring wstr = L"Привет, мир!";
std::cout << "string length: " << str.length() << std::endl;
std::wcout << L"wstring length: " << wstr.length() << std::endl;
// इंडेक्स के अनुसार कैरेक्टर निकालने का प्रयास
std::cout << "Первый символ string: " << str[0] << std::endl;
std::wcout << L"Первый символ wstring: " << wstr[0] << std::endl;
}
```
आउटपुट मुझे भ्रमित करता है: std::string की लंबाई स्ट्रिंग में कैरेक्टर्स की संख्या से अधिक होती है, जबकि wstring अलग व्यवहार करता है। मैंने यह भी सुना है कि Unicode, एन्कोडिंग और प्लेटफ़ॉर्म के साथ समस्याएँ हैं। कृपया बताएँ कि किन प्रोजेक्ट्स में किसका उपयोग करना चाहिए।