English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

دليل الأساسيات لـ C++

تحكم في تدفق C++

الوظائف في C++

مصفوفات C++ و نصوص

هياكل بيانات C++

كلاس C++ و对象

المراجع في C++

الوراثة في C++

دليل STL لـ C++

دليل C++

تحويل C++ String (النص) و float/double (عدد عشري) بشكل متبادل

في هذا الدرس، سنتعلم باستخدام الأمثلة كيفية تحويل النص إلى عدد عشري والعكس صحيح.

تحويل نص C++ إلى عدد عشري وعدد عشري ثنائي

أسهل طريقة لتحويل نص إلى عدد عشري باستخدامC ++ 11دالة:

  • std :: stof() - تحويل string إلى float

  • std :: stod() - تحويل string إلى double

  • std :: stold() - تحويل string إلى long double.

هذه الدوال معرفة في ملف string

مثال 1: تحويل نص C++ إلى عدد عشري وعدد عشري ثنائي

#include<iostream>
#include<string>
int main() {
    std::string str = "123.4567";
    // تحويل النص إلى عدد عشري
    float num_float = std::stof(str);
    // تحويل النص إلى عدد عشري ثنائي
    double num_double = std::stod(str);
   std::cout << "num_float = " << num_float << std::endl;
   std::cout << "num_double = " << num_double << std::endl;
    return 0;
}

نتائج الإخراج

num_float = 123.457
num_double = 123.457

مثال 2: تحويل مصفوفة char في C++ إلى عدد عشري

يمكننا استخدام دالة std::atof() لتحويل مصفوفة الحروف إلى double.

#include<iostream>
//يحتاج atoi() إلى cstdlib
#include<cstdlib>
int main() {
    //إعلان وتعيين مصفوفة الحروف
    char str[] = "123.4567";
    double num_double = std::atof(str);
    std::cout << "num_double = " << num_double << std::endl;
    
    return 0;
}

نتائج الإخراج

num_double = 123.457

تحويل عدد عشري وعدد عشري ثنائي إلى نص في C++

يمكننا استخدام دالة C++ 11 std::to_string() لتحويل float وdouble إلى نص. بالنسبة للمحولات القديمة، يمكننا استخدام موضوع std::stringstream.

مثال 3: استخدام to_string() لتحويل عدد عشري وعدد عشري ثنائي إلى نص

#include<iostream>
#include<string>
int main() {
    float num_float = 123.4567F;
    double num_double = 123.4567;
    std::string str1 = std::to_string(num_float);
    std::string str2 = std::to_string(num_double);
   std::cout << "Float إلى String = " << str1 << std::endl;
   std::cout << "Double إلى String = " << str2 << std::endl;
    return 0;
}

نتائج الإخراج

تحويل Float إلى String = 123.456703
تحويل Double إلى String = 123.456700

مثال 4: استخدام stringstream لتحويل عدد عشري وعدد عشري ثنائي إلى نص

#include<iostream>
#include<string>
#include<sstream> //استخدام stringstream
int main() {
    float num_float = 123.4567F;
    double num_double = 123.4567;
  
    //إنشاء موضوع stringstream
    std::stringstream ss1;
    std::stringstream ss2;
  
    //تخصيص قيمة num_float لـ ss1
    ss1 << num_float;
  
    //تخصيص قيمة num_float لـ ss2
    ss2 << num_double;
     //يتم تعيين قيم ss1 و ss2 لتعيين متغيرين نصيين
     //ثم يستخدم دالة str() لتحويلها إلى شكل نصي
    std::string str1 = ss1.str();
    std::string str2 = ss2.str();
  
    std::cout << "Float إلى String = " << str1 << std::endl;
    std::cout << "Double إلى String = " << str2 << std::endl;
    return 0;
}

نتائج الإخراج

Float إلى String = 123.457
Double إلى String = 123.457

التحويلات ذات الصلة: تحويل تحويل النص إلى int في C++.