Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * Dla forum M. Zelenta
- * Adam Knie
- */
- #include <iostream>
- #include <string>
- #include <algorithm> // Potrzebne do funkcji reverse
- using namespace std; // przestrzeń nazw
- string intToString(int);
- int numberSize(int); // Prototypy funkcji
- int main()
- {
- // test.
- cout << intToString(123) << endl;
- }
- // Funkcja zamieniająca liczby całkowite na tekst
- string intToString(int number)
- {
- int tempNumber = 0; // zmienna przechowująca aktualną liczbę
- int numberToDivide = 1; // liczba przez którą będziemy dzielić
- // jest to jeden ze sposobów na podzielenie liczby na 'części'
- string result = ""; // rezultat działania funkcji
- int theNumberSize = numberSize(number); // Określenie długości cyfry
- do // do..
- {
- if (numberToDivide == 1) // jeżeli dzielnik jest równy 1 ..
- tempNumber = number % 10; // wystarczy podzielić z resztą przez 10
- else // jeżeli różny od 1 ..
- tempNumber = number / numberToDivide % 10; // należy podzielić liczbę przez dzielnik (zwiększany z każdym przebiegiem) oraz podzielić
- // modulo przez 10
- result += (char)48 + tempNumber; // określenie kodu znaku poprzez dodanie aktualnej liczby do 48
- tempNumber = 0; // wyzerowanie liczby na której operujemy
- numberToDivide *= 10; // pomnożenie dzielnika przez 10
- theNumberSize--; // zmiejszenie rozmiaru
- } while (theNumberSize != 0); // wykonuj dopóki rozmiar jest różny od 0
- std::reverse(std::begin(result), std::end(result)); // odwrócenie rezultatu
- return result; // zwrócenie rezultatu
- }
- // Funkcja obliczająca długość liczby
- int numberSize(int number)
- {
- int size = 0;
- if (number < 0) // określenie '-'
- size = 1;
- while (number) {
- number /= 10;
- size++;
- }
- return size;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement