এই বিভাগে দেখব কিভাবে 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