इस खंड में, हम देखेंगे कि C++ स्ट्रिंग (std::string) को const char* या char* में कैसे बदलें। ये फॉर्मेट C-स्टाइल स्ट्रिंग्स हैं। हमारे पास c_str() नामक एक फंक्शन है। यह हमें कार्य करने में मदद करेगा। यह एक सरणी के पॉइंटर को लौटाता है जिसमें एक नल-टर्मिनेटेड वर्ण अनुक्रम (यानी, एक C-स्ट्रिंग) होता है जो स्ट्रिंग ऑब्जेक्ट के वर्तमान मान का प्रतिनिधित्व करता है।
std::string::c_str के लिए घोषणा निम्नलिखित है।
const char* c_str() const;
यह फंक्शन एक सरणी के पॉइंटर को लौटाता है जिसमें एक नल-टर्मिनेटेड वर्ण अनुक्रम (यानी, एक C-स्ट्रिंग) होता है जो स्ट्रिंग ऑब्जेक्ट के वर्तमान मान का प्रतिनिधित्व करता है। यदि कोई अपवाद फेंका जाता है, तो स्ट्रिंग में कोई परिवर्तन नहीं होता।
उदाहरण कोड
#include <iostream>
#include <cstring>
#include <string>
int main () {
std::string str ("Please divide this sentence into parts");
char * cstr = new char [str.length()+1];
std::strcpy (cstr, str.c_str());
char * p = std::strtok (cstr," ");
while (p!=0) {
std::cout << p << '\n';
p = std::strtok(NULL," ");
}
delete[] cstr;
return 0;
}
आउटपुट
Please
divide
this
sentence
into
parts