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

چطور میشه رقم ها رو از عدد ورودی جدا کرد؟

0 امتیاز
دوستان چطور میشه که اگه یک عدد 2 رقمی یا 3 رقمی یا 4 رقمی یا اصلا عددی که تعداد رقمهایش معلوم نیست ، رو بگییریم رقم هایش رو دونه دونه جدا کنیم؟

آیا تابعی هست ؟

 

با تشکر.
سوال شده بهمن 18, 1393  بوسیله ی hosseinam1370 (امتیاز 163)   8 22 34

2 پاسخ

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

ساده ترین راه این هست که عدد رو به string تبدیل کرد و کاراکتر ها رو یکی یکی خوند

#include <iostream>
#include <string>
int main(){
    int number;
    std::cin>>number;
    std::string str=std::to_string(number);
    for(auto ch:str){
        std::cout<<ch<<" ";
    }
}

 

پاسخ داده شده بهمن 18, 1393 بوسیله ی BlueBlade (امتیاز 15,315)   15 18 89
انتخاب شد بهمن 19, 1393 بوسیله ی hosseinam1370
در این خط for(auto ch:str)  ، میشه بگید که منظور از auto ch:str  چیه؟
با تشکر.
مثل foreach توی زبانهای دیگه هست
یعنی توی هر دور مقدار ch میشه کاراکتر های متوالی
string مثلاً اگه str ="Fire" باشه مقادیری که در ch قرار میگیره
به ترتیب F i r e هستش(az chap be rast)
+1 امتیاز

از این روش هم میشه استفاده کرد اما روش امید بهتره این فقط یه روش الگوریتمی بدرد نخور و برای الگوریتم هست البته میگم بدرد نخور از بابت اینه که به خاطر اینکه از لگاریتم و محاسبات ریاضی استفاده میکنه توی اعداد خیلی بزرگ کم میاره ولی برای درک الگوریتم خوبه

#include <iostream>
#include <cmath>
using namespace std;

int main()
{
    int num;
    cin >> num;
    int l=log(num)/log(10);
    for(int i=0 ; i<l+1 ; i++){
        cout << num%10 << endl;
        num/=10;
    }

    return 0;
}

 

پاسخ داده شده بهمن 21, 1393 بوسیله ی Fire360Boy (امتیاز 2,524)   6 24 43
...