C++-এ std::string কে char অ্যারে (C-স্ট্রিং) রূপান্তর করার একাধিক পদ্ধতি রয়েছে। নিচে তিনটি পদ্ধতি দেওয়া হলো।
পদ্ধতি ১: ম্যানুয়াল কপি (লুপ ব্যবহার)
এলগরিদম
শুরু
স্ট্রিং m-এ মান দিন
i = 0 থেকে sizeof(m) পর্যন্ত
char অ্যারেতে কপি করুন
char অ্যারে প্রিন্ট করুন
শেষ
উদাহরণ কোড
#include <iostream>
#include <string.h>
using namespace std;
int main() {
char m[] = "Tutorialspoint";
string str;
int i;
for (i = 0; i < sizeof(m); i++) {
str[i] = m[i];
cout << str[i];
}
return 0;
}
পদ্ধতি ২: strcpy() ফাংশন ব্যবহার
C-স্টাইল স্ট্রিং কপি করার জন্য strcpy() ব্যবহার করা যায়।
এলগরিদম
শুরু স্ট্রিং s-এ মান দিন strcpy() দিয়ে char অ্যারেতে কপি করুন শেষ
উদাহরণ কোড
#include <iostream>
#include <string>
#include <cstring>
using namespace std;
int main() {
string str = "Tutorialspoint";
char c[str.size() + 1]; // +1 for null terminator
strcpy(c, str.c_str());
cout << c << '\n';
return 0;
}
আউটপুট
Tutorialspoint
পদ্ধতি ৩: std::string::copy() ব্যবহার (C++11+)
strcpy() এড়াতে string::copy() মেম্বার ফাংশন ব্যবহার করা ভালো।
এলগরিদম
শুরু স্ট্রিং s-এ মান দিন copy() দিয়ে char অ্যারেতে কপি করুন নাল টার্মিনেটর যোগ করুন শেষ
উদাহরণ কোড
#include <iostream>
#include <string>
using namespace std;
int main() {
string str = "Tutorialspoint";
char c[str.size() + 1];
str.copy(c, str.size() + 1);
c[str.size()] = '\0'; // নাল টার্মিনেটর জরুরি
cout << c << '\n';
return 0;
}
আউটপুট
Tutorialspoint
সেরা প্র্যাকটিস: পদ্ধতি ৩ (string::copy()) ব্যবহার করুন কারণ এটি C++-ইডিওম্যাটিক, বাউন্ড চেকিং সহ এবং c_str()-এর মতো এক্সট্রা কপি এড়ায়। সবসময় নাল টার্মিনেটর '\0' ম্যানুয়ালি যোগ করুন।