Numbers and Strings

در C++ اعداد (int, double, …) و رشته‌ها (std::string) دو نوع دادهٔ متفاوت هستند؛
بنابراین برای تبدیل و ترکیب آن‌ها باید از توابع و روش‌های مخصوص استفاده کرد.

🟠 C++ Numbers and Strings

🔹 1. تبدیل عدد → رشته

برای چاپ یا الحاق عدد به متن، ابتدا عدد را به std::string تبدیل کنید.

()to_string (ساده‌ترین راه)

#include <iostream> #include <string> using namespace std; int main() { int age = 25; double price = 19.99; string info = "Age: " + to_string(age); string cost = "Price: " + to_string(price); cout << info << endl; // Age: 25 cout << cost << endl; // Price: 19.990000 }

()to_string برای int, double, float, … کار می‌کند.

✅ کنترل قالب با ostringstream

برای کنترل تعداد اعشار:

#include <sstream> #include <iomanip> double pi = 3.14159; ostringstream oss; oss << fixed << setprecision(2) << pi; string piStr = oss.str(); cout << piStr; // 3.14

🔹 2. تبدیل رشته → عدد

وقتی کاربر ورودی متنی می‌دهد (مثلاً با cin) و شما می‌خواهید آن را عددی پردازش کنید:

تابعنوع خروجی
()stoiint
()stollong
()stolllong long
()stoffloat
()stoddouble
#include <iostream> #include <string> using namespace std; int main() { string s1 = "42"; string s2 = "3.14"; int n = stoi(s1); double d = stod(s2); cout << n + 8 << endl; // 50 cout << d * 2 << endl; // 6.28 }

اگر رشته نامعتبر باشد، این توابع std::invalid_argument یا std::out_of_range پرتاب می‌کنند.

🔹 3. اتصال عدد و رشته

برای ساخت جمله‌ای شامل عدد:

int score = 90; string message = "Your score is " + to_string(score); cout << message; // Your score is 90

🔹 4. دریافت عدد به صورت رشته

اگر بخواهید ورودی کاربر را دقیقاً به همان صورت متنی داشته باشید (مثلاً با صفرهای ابتدایی):

string code; cin >> code; // وارد کردن مثلا 007 cout << "Code: " << code; // نگه داشتن صفرهای اول

✅ نکات مهم

  • بدون تبدیل مستقیم نمی‌توانید std::string را با عدد جمع کنید ("Age: " + 25 ❌).

  • برای کنترل فرمت (تعداد اعشار، پیشوندها، …) از <iomanip> و ostringstream استفاده کنید.

  • هنگام تبدیل رشته به عدد، خطاهای احتمالی (ورودی نامعتبر) را مدیریت کنید.

خلاصه

هدفروش سریع
عدد → رشتهto_string(number)
رشته عددی → intstoi(str)
رشته عددی → doublestod(str)
کنترل قالب/اعشارostringstream + <iomanip>

این تکنیک‌ها به شما امکان می‌دهند در C++ به‌راحتی بین اعداد و رشته‌ها جابه‌جا شوید و آن‌ها را در یک برنامه با هم استفاده کنید.