আমি কিভাবে থেকে রূপান্তর করবেন std::stringstream
করতে std::string
C ++?
স্ট্রিং স্ট্রিমে কি আমাকে কোনও পদ্ধতি কল করার দরকার আছে?
আমি কিভাবে থেকে রূপান্তর করবেন std::stringstream
করতে std::string
C ++?
স্ট্রিং স্ট্রিমে কি আমাকে কোনও পদ্ধতি কল করার দরকার আছে?
উত্তর:
yourStringStream.str()
.Str () - পদ্ধতিটি ব্যবহার করুন :
অন্তর্নিহিত স্ট্রিং অবজেক্টের সামগ্রীগুলি পরিচালনা করে।
1) কল করে যেমন অন্তর্নিহিত স্ট্রিংয়ের একটি অনুলিপি ফেরত দেয়
rdbuf()->str()
।2) অন্তর্নিহিত স্ট্রিংয়ের সামগ্রীগুলি প্রতিস্থাপন করে যেন কল করে
rdbuf()->str(new_str)
...মন্তব্য
The copy of the underlying string returned by str is a temporary object that will be destructed at the end of the expression, so directly calling
c_str()
on the result ofstr()
(for example inauto *ptr = out.str().c_str();
) results in a dangling pointer...
std::stringstream::str()
আপনি খুঁজছেন পদ্ধতি হয়।
সহ std::stringstream
:
template <class T>
std::string YourClass::NumericToString(const T & NumericValue)
{
std::stringstream ss;
ss << NumericValue;
return ss.str();
}
std::stringstream
একটি আরও সাধারণ সরঞ্জাম। আপনি std::ostringstream
এই নির্দিষ্ট কাজের জন্য আরও বিশেষজ্ঞ ক্লাস ব্যবহার করতে পারেন ।
template <class T>
std::string YourClass::NumericToString(const T & NumericValue)
{
std::ostringstream oss;
oss << NumericValue;
return oss.str();
}
আপনি যদি std::wstring
ধরণের স্ট্রিং নিয়ে কাজ করছেন তবে আপনাকে অবশ্যই পছন্দ করতে হবে std::wstringstream
বা std::wostringstream
তার পরিবর্তে।
template <class T>
std::wstring YourClass::NumericToString(const T & NumericValue)
{
std::wostringstream woss;
woss << NumericValue;
return woss.str();
}
আপনি যদি চান যে আপনার স্ট্রিংয়ের চরিত্রের ধরণটি রান-টাইম নির্বাচনযোগ্য হতে পারে তবে আপনার এটিকে একটি টেম্পলেট পরিবর্তনশীলও করা উচিত।
template <class CharType, class NumType>
std::basic_string<CharType> YourClass::NumericToString(const NumType & NumericValue)
{
std::basic_ostringstream<CharType> oss;
oss << NumericValue;
return oss.str();
}
উপরের সমস্ত পদ্ধতির জন্য আপনাকে অবশ্যই নিম্নলিখিত দুটি হেডার ফাইল অন্তর্ভুক্ত করতে হবে।
#include <string>
#include <sstream>
উল্লেখ্য, যুক্তি NumericValue
উপরের উদাহরণগুলোতে এছাড়াও হিসাবে পাস করা যেতে পারে std::string
বা std::wstring
সঙ্গে ব্যবহার করা std::ostringstream
এবং std::wostringstream
যথাক্রমে দৃষ্টান্ত। এটির জন্য NumericValue
একটি সংখ্যার মান হওয়া প্রয়োজন।