PDA

View Full Version : string to int



طلیعه-988
پنج شنبه 21 مرداد 1389, 02:14 صبح
با سلام.
چه جوری میشه string به int کانورت بشه؟؟؟

md_bluelily
پنج شنبه 21 مرداد 1389, 02:16 صبح
فکر کنم یه تابع بود به اسم atoi و یا wtoi.
البته بستگی به نوع string هم داره.

khafan_bat
پنج شنبه 21 مرداد 1389, 04:59 صبح
همونطور که اون دوست عزیز فرمودند باید از تابع atoi استفاده کنی .

تبدیل string به long integer :

int atoi ( const char * str );


تبدیل string به double :

double atof ( const char * str );

البته یک تابع دیگه به نام strtol هم هست که یادم نیست چه طور کار میکنه ، به کامپایلر رجوع کن

Salar Ashgi
پنج شنبه 21 مرداد 1389, 12:06 عصر
درخواست کد ممنوع است و مخالف قوانین سایت ،کد را باید خودتان بنویسید و فقط میتوانید درخواست راهنمایی کنید ، ولی جهت آشنایی یه مثال براتون میزنم :

بدون توابع آماده هم میشه اینکارو کرد :



#include <iostream>
#include <conio>
#include <string>
#include <math>
using namespace std;
int str_to_int(string num){
char ch;
int sum=0;
int f=0;
for(int i=num.size()-1;i>=0;i--){
ch = num[i];
sum+=pow(10,f++)*(((int)(ch))-48);}
return sum;}
//==========================
int main(){
string str="";
while(true){
cout<<"Enter a string :\n";
cin>>str;
int res = str_to_int(str);
cout<<"int : "<<res<<endl;
cout<<"===================\n";}
getch();
}
http://salarcpp.persiangig.com/new_folder_3/str.jpg

موفق باشید ./

طلیعه-988
پنج شنبه 21 مرداد 1389, 13:22 عصر
ممنونم از همگی
موفق باشید!!!

طلیعه-988
جمعه 22 مرداد 1389, 17:32 عصر
دوستان میشه راجع به کانورت string to float هم یه راهنماییی بکنید.
تو همون قطعه کد آقای اشگی تو فسمت for مشکل دارم.

Salar Ashgi
جمعه 22 مرداد 1389, 18:12 عصر
دوستان میشه راجع به کانورت string to float هم یه راهنماییی بکنید.
تو همون قطعه کد آقای اشگی تو فسمت for مشکل دارم.

بحث خیلی سادس ، اگه مال عدد صحیح رو متوجه بشین ، تبدیل عدد اعشاری هم هیچ سختی
نداره !

ببینید ، فرض کنیم رشته ما هستش : "123" خوب اینو میخوایم تبدیل کنیم به عدد صحیح ،
از قانون مبناها (اینجا مبنای 10) استفاده میکنیم ، شما عدد صحیح 123 رو تو مبنای 10 چطور
نشون میدید ؟! خوب به این شکل :


1*(10^2)+2*(10^1)+3*(10^0)

خوب منم دقیقا همین کارو توی حلقه انجام دادم ، کاراکترهای رشته رو جدا جدا کردم ، بعد هر
کدوم رو در توانهای عدد 10 ضرب کردم ، فقط یه نکته که جهت تبدیل کاراکتر اعداد به خود عدد
مثلا '1' به عدد صحیح یک ، کافیست از کد اسکی کاراکتر 48 واحد کم کنیم ، کاری که من
انجام دادم (چون کد اسکی ارقام بین 48 تا 57 هستش ) و همچنین این نکته که من رشته
رو از آخر به اول پیمایش میکنم تا ضرب توانهای 10 راحتتر باشه !
فک نکنم دیگه موردی مونده باشه ، باز اگه سوالی بود حتما بپرسید ./

موفق باشید .