সি ++ 98 এর জন্য কয়েকটি বিকল্প রয়েছে:
boost/lexical_cast
বুস্টটি সি ++ লাইব্রেরির অংশ নয় তবে এতে অনেকগুলি দরকারী লাইব্রেরি এক্সটেনশন রয়েছে।
lexical_cast
ফাংশন টেমপ্লেটে ও নির্বিচারে ধরনের যখন তারা পাঠ্য হিসেবে প্রতিনিধিত্ব করা হয় থেকে সাধারণ ধর্মান্তর সমর্থনের জন্য একটি সুবিধাজনক এবং সুসংগত ফর্ম উপলব্ধ করা হয়।
- বুস্টের ডকুমেন্টেশন
#include "boost/lexical_cast.hpp"
#include <string>
int main() {
int x = 5;
std::string x_str = boost::lexical_cast<std::string>(x);
return 0;
}
রানটাইম হিসাবে, lexical_cast
অপারেশনটি প্রথম রূপান্তরটিতে প্রায় 80 মাইক্রোসেকেন্ড (আমার মেশিনে) নেয় এবং পরে যদি অপ্রয়োজনীয়ভাবে করা হয় তবে পরে যথেষ্ট গতি বাড়ায়।
itoa
এই ফাংশনটি এএনএসআই-সি-তে সংজ্ঞায়িত নয় এবং এটি সি ++ এর অংশ নয়, তবে কয়েকটি সংকলক দ্বারা সমর্থিত।
- সিপিপ্লসপ্লাস.কম
এর অর্থ হ'ল gcc
/ g++
কোড ব্যবহার করে সংকলন করতে পারে না itoa
।
#include <stdlib.h>
int main() {
int x = 5;
char * x_str = new char[2];
x_str = itoa(x, x_str, 10); // base 10
return 0;
}
রিপোর্ট করার কোনও রানটাইম নেই। আমি যা ভিসুয়াল স্টুডিও ইনস্টল না, জানা কম্পাইল করতে পারবেন itoa
।
sprintf
sprintf
একটি সি স্ট্যান্ডার্ড লাইব্রেরি ফাংশন যা সি স্ট্রিংয়ে কাজ করে এবং এটি একটি সম্পূর্ণ বৈধ বিকল্প।
একই পাঠ্য সহ একটি স্ট্রিং রচনা করে যা মুদ্রণযোগ্য মুদ্রণ হবে যদি প্রিন্টফ এ ব্যবহৃত হয় তবে মুদ্রণের পরিবর্তে সামগ্রীটি স্ট্র দ্বারা নির্দেশিত বাফারে একটি সি স্ট্রিং হিসাবে সংরক্ষণ করা হয়।
- সিপিপ্লসপ্লাস.কম
#include <stdio.h>
int main() {
int x = 5;
char * x_str = new char[2];
int chars_written = sprintf(x_str, "%d", x);
return 0;
}
stdio.h
হেডার প্রয়োজনীয় নাও হতে পারে। রানটাইম হিসাবে, sprintf
অপারেশনটি প্রথম রূপান্তরটিতে প্রায় 40 টি মাইক্রোসেকেন্ড (আমার মেশিনে) নেয় এবং পরে যদি অপ্রয়োজনীয়ভাবে করা হয় তবে পরে যথেষ্ট গতি বাড়ায়।
stringstream
এটি সি ++ লাইব্রেরির মূল সংকেতগুলিকে স্ট্রিংগুলিতে রূপান্তর করার এবং এর বিপরীতে way stringstream
স্রোতের অভিব্যক্তির ব্যবহারকে আরও সীমাবদ্ধ করে তুলতে অনুরূপ বোন ফাংশন রয়েছে ostringstream
। ostringstream
বিশেষভাবে ব্যবহার করা আপনার কোডের পাঠককে বলে যে আপনি কেবল <<
অপারেটরটি মূলত ব্যবহার করার ইচ্ছা করেন । একটি পূর্ণসংখ্যাকে একটি স্ট্রিংয়ে রূপান্তর করতে বিশেষভাবে প্রয়োজনীয় এই ফাংশনটি। আরও বিস্তৃত আলোচনার জন্য এই প্রশ্নটি দেখুন ।
#include <sstream>
#include <string>
int main() {
int x = 5;
std::ostringstream stream;
stream << x;
std::string x_str = stream.str();
return 0;
}
রানটাইম হিসাবে, ostringstream
অপারেশন (আমার মেশিনে) 71 মাইক্রোসেকেন্ডের লাগে, এবং তারপর যথেষ্ট পরে যদি redundantly সম্পন্ন দ্রুত সম্পন্ন করা, কিন্তু পূর্ববর্তী ফাংশন যতটা না ।
অবশ্যই অন্যান্য বিকল্প রয়েছে, এবং আপনি এগুলির মধ্যে একটিকেও নিজের ফাংশনে আবদ্ধ করতে পারেন, তবে এটি জনপ্রিয় কয়েকটি সম্পর্কে বিশ্লেষণাত্মক চেহারা দেয়।