Advertisement
Guest User

Untitled

a guest
Jun 8th, 2015
198
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.87 KB | None | 0 0
  1. /*
  2. * Dla forum M. Zelenta
  3. * Adam Knie
  4. */
  5. #include <iostream>
  6. #include <string>
  7. #include <algorithm> // Potrzebne do funkcji reverse
  8.  
  9. using namespace std; // przestrzeń nazw
  10.  
  11. string intToString(int);
  12. int numberSize(int); // Prototypy funkcji
  13.  
  14. int main()
  15. {
  16.     // test.
  17.     cout << intToString(123) << endl;
  18. }
  19.  
  20. // Funkcja zamieniająca liczby całkowite na tekst
  21. string intToString(int number)
  22. {
  23.     int tempNumber = 0; // zmienna przechowująca aktualną liczbę
  24.     int numberToDivide = 1; // liczba przez którą będziemy dzielić
  25.     // jest to jeden ze sposobów na podzielenie liczby na 'części'
  26.     string result = ""; // rezultat działania funkcji
  27.  
  28.     int theNumberSize = numberSize(number); // Określenie długości cyfry
  29.  
  30.     do // do..
  31.     {
  32.         if (numberToDivide == 1) // jeżeli dzielnik jest równy 1 ..
  33.             tempNumber = number % 10; // wystarczy podzielić z resztą przez 10
  34.         else // jeżeli różny od 1 ..
  35.             tempNumber = number / numberToDivide % 10; // należy podzielić liczbę przez dzielnik (zwiększany z każdym przebiegiem) oraz podzielić
  36.         // modulo przez 10
  37.         result += (char)48 + tempNumber; // określenie kodu znaku poprzez dodanie aktualnej liczby do 48
  38.  
  39.         tempNumber = 0; // wyzerowanie liczby na której operujemy
  40.         numberToDivide *= 10; // pomnożenie dzielnika przez 10
  41.  
  42.         theNumberSize--; // zmiejszenie rozmiaru
  43.     } while (theNumberSize != 0); // wykonuj dopóki rozmiar jest różny od 0
  44.  
  45.     std::reverse(std::begin(result), std::end(result)); // odwrócenie rezultatu
  46.     return result; // zwrócenie rezultatu
  47. }
  48.  
  49. // Funkcja obliczająca długość liczby
  50. int numberSize(int number)
  51. {
  52.     int size = 0;
  53.     if (number < 0) // określenie '-'
  54.         size = 1;
  55.  
  56.     while (number) {
  57.         number /= 10;
  58.         size++;
  59.     }
  60.  
  61.     return size;
  62. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement