تبدیل رشته به عدد و عدد به رشته - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

تبدیل رشته به عدد و عدد به رشته

+3 امتیاز

توی c++ یا c چجوری میشه رشته رو به عدد تبدیل کرد یا برعکس ؟

سوال شده آذر 1, 1392  بوسیله ی toopak (امتیاز 2,458)   16 48 66
دوباره تگ گذاری شد اسفند 29, 1392 بوسیله ی BlueBlade

2 پاسخ

+7 امتیاز
 
بهترین پاسخ

برای استفاده از کد های زیر باید  سرآیند های  string  ,  sstream رو include کنید.

برای تبدیل عدد به string میتونین از کد زیر استفاده کنین

string numberToString(int num )  
{   ostringstream os;  
    os << num;      
    return os.str(); 
}  

//halat koli 
template <typename T>  
string numberToString( T num )  
{   ostringstream os;  
    os << num;      
    return ss.str(); 
}  

برای تبدیل string به عدد هم به همین شکل

//bedoon template :
int stringToInteger(string str)
{
    int result;
    istringstream convert(str);
    if ( !(convert >> result) )
       throw "Can not convert";

    return result;
}
int number=stringToInteger("22");//mesal az nahve estefade

//halat koli 
template <typename T>
T stringToInteger(string str)
{
    T result;
    istringstream convert(str);
    if ( !(convert >> result) )
       throw "Can not convert";

    return result;
}
float number=stringToInteger<float>("123.45");//mesal az nahve estefade
int number=stringToInteger<int>("22");//mesal az nahve estefade

توی c++11 می تونین از این ۲ تابع استفاده کنین .

int number = 123;
string text = to_string(number);

text = "456"
number = stoi(number);

 

برای استفاده از کد های زیر هم باید 2 تا header روبرو رو include کنید : stdio.h , stdlib.h

تبدیل char* به عدد :

char * number="123";
int i = atoi (number);

تبدیل عدد به char* :

    int number = 123;
    char str[20];
    sprintf(str, "%d", number);

 

پاسخ داده شده آذر 1, 1392 بوسیله ی BlueBlade (امتیاز 15,315)   15 18 89
ویرایش شده فروردین 6, 1393 بوسیله ی BlueBlade
+4 امتیاز

با تشکر از امید.

راه های ساده تری هم وجود داره که برای تبدیل رشته در c++ می تونید از tostring و تبدیل string به عدد صحیح هم می تونید از std:stoi استفاده کنید به صورت زیر :

#include <iostream>  
#include <string> 

using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
string str = std::to_string(10);
int value= std::stoi(str);
}

البته تو ansi c هم برای تبدیل عدد به رشته می تونید از تابع sprintf استفاده کنید.

 
پاسخ داده شده آذر 1, 1392 بوسیله ی مصطفی ساتکی (امتیاز 21,998)   24 34 75
ویرایش شده اسفند 25, 1392 بوسیله ی BlueBlade
...