Elektroda.pl
Elektroda.pl
X

Wyszukiwarki naszych partnerów

Wyszukaj w ofercie 200 tys. produktów TME
Kategoria: Kamery IP / Alarmy / Automatyka Bram
Montersi
Proszę, dodaj wyjątek elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

C++ - Jak zamienić ciąg znaków na int?

BuildEver 07 Sty 2017 19:19 294 4
  • #1 07 Sty 2017 19:19
    BuildEver
    Poziom 7  

    Witam forum!

    Mam tablicę która trzyma w sobie daną liczbę jako znaki.

    Kod: c
    Zaloguj się, aby zobaczyć kod


    Chciałbym zamienić tą tablice na liczbę 2540 (przypisać do int), nie wiem zbytnio jak to zrobić :/

    Dziękuję za odpowiedzi!

  • Pomocny post
    #3 08 Sty 2017 10:10
    krru
    Poziom 32  

    To nie są znaki tylko raczej bajty - tablica nie tworzy napisu (znak o kodzie 0 zakończyłby napis i wyszłoby 254). Gotowej funkcji do konwersji dziesiętnej raczej nie będzie. Można albo skonwertować  to na napis dodając do każdego elementu tablicy wartość '0' i potem skorzystać z funkcji char * => int (scanf, atoi lub wręcz strumienie c++), albo napisać funkcję (odpowiednik atoi) ale działającą bezpośrednio na wartości bajtów a nie na reprezentacji ASCII. Coś takiego:

    Kod: c
    Zaloguj się, aby zobaczyć kod


    Oczywiście problemem będzie co zrobić, gdy któryjś bajt będzie większy niż 10.

  • #4 09 Sty 2017 14:48
    BuildEver
    Poziom 7  

    krru napisał:
    To nie są znaki tylko raczej bajty - tablica nie tworzy napisu (znak o kodzie 0 zakończyłby napis i wyszłoby 254). Gotowej funkcji do konwersji dziesiętnej raczej nie będzie. Można albo skonwertować  to na napis dodając do każdego elementu tablicy wartość '0' i potem skorzystać z funkcji char * => int (scanf, atoi lub wręcz strumienie c++), albo napisać funkcję (odpowiednik atoi) ale działającą bezpośrednio na wartości bajtów a nie na reprezentacji ASCII. Coś takiego:

    Kod: c
    Zaloguj się, aby zobaczyć kod


    Oczywiście problemem będzie co zrobić, gdy któryjś bajt będzie większy niż 10.



    Twoja odpowiedź dała mi dużo do myślenia i zrobiłem tak:


    (program pisany pod Arduino)
    Kod: c
    Zaloguj się, aby zobaczyć kod


    Po czymś takim wszystko dział. W sumie proste to było, nie wiem czemu wcześniej na to nie padłem :)

  • #5 09 Sty 2017 21:01
    BuildEver
    Poziom 7  

    Tutaj jeszcze prostszy sposób:

    Kod: c
    Zaloguj się, aby zobaczyć kod

Szybka odpowiedź lub zadaj pytanie
Dziękuję Ci. Ta wiadomość oczekuje na moderatora.
 Szukaj w ofercie
Wyszukaj w ofercie 200 tys. produktów TME