• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Zamiana string na tablice int. Pomocy

0 głosów
1,688 wizyt
pytanie zadane 25 listopada 2020 w C i C++ przez rinsu Nowicjusz (170 p.)
Witam. Potrzebuje pomocy w zamianie zmiennej string na tablice int. Każda cyfra zapisana w tekście musi być zamieniona cyfry w int. Kiedyś jakoś to robilem z użyciem ascii ale nie pamiętam już jak. Próbowałem też z użyciem atoi ale nie potrafie tego poprawnie użyć. Dzięki wielkie za pomoc.
komentarz 25 listopada 2020 przez wizarddos Nałogowiec (28,110 p.)
dasz kod swój?
komentarz 25 listopada 2020 przez tkz Nałogowiec (42,040 p.)
Przecież napisał, że nic nie ma, bo nie pamięta jak kiedyś to zrobił.
1. Tablica długości stringa.
2. Iterujemy po stringu i przypisujemy do indeksu tablicy, ten plus, że to i to zaczyna się od 0.
Właściwie tyle.
komentarz 25 listopada 2020 przez rinsu Nowicjusz (170 p.)
Aktualnie nic już nie mam w tym kodzie, mam tylko wprowadzenie z klawiatury i nieudolną próbę zamiany.

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

int main()
{
    string pesel;
    int pesel1,n,i;
    int x[12];
    cout << "Podaj swoj pesel" << endl;
    cin>>pesel;
    n=pesel.length();
    for(i=0;i<n;i++)
    {
        x[i]=pesel[i];
    }
komentarz 25 listopada 2020 przez wizarddos Nałogowiec (28,110 p.)
stringa na int'a się nie skonwertuje (Z tego co wiem).
1
komentarz 25 listopada 2020 przez tangarr Mędrzec (155,120 p.)
Jeżeli string zawiera liczbę to możesz go sparsować aby wyciągnąć z niego wartość liczbową.
1
komentarz 25 listopada 2020 przez tkz Nałogowiec (42,040 p.)
Nawet jak nie ma liczby, to i tak możesz rzutować go na cyfry.
komentarz 25 listopada 2020 przez wizarddos Nałogowiec (28,110 p.)
dobrze wiedzieć

1 odpowiedź

+1 głos
odpowiedź 25 listopada 2020 przez tangarr Mędrzec (155,120 p.)
1. Wczytujesz napis
2. Tworzysz tablicę/wektor o rozmiarze długości napisu
3. Iterujesz po wszystkich znakach napisu
- sprawdzasz czy znak jest cyfrą (tzn. czy jest w zakresie '0'-'9')
- aby uzyskać wartość reprezentowaną przez znak odejmij od niego wartość znaku '0'
komentarz 25 listopada 2020 przez rinsu Nowicjusz (170 p.)
Co to znaczy że mam odjąć wartość znaku zero?
1
komentarz 25 listopada 2020 przez tangarr Mędrzec (155,120 p.)

Nie znaku zero. Tylko znaku reprezentującego zero (czyli zmienna char '0').

Spójrz na tablicę znaków ASCII https://pl.wikipedia.org/wiki/ASCII

Znak zero ma wartość 48.

char moja_cyfra = '7';
int test1 = moja_cyfra;
int test2 = moja_cyfra - '0';

cout << "test1=" << test1 << endl;
cout << "test2=" << test2 << endl;

 

komentarz 25 listopada 2020 przez rinsu Nowicjusz (170 p.)

Dziękiwink

Podobne pytania

0 głosów
2 odpowiedzi 655 wizyt
+1 głos
2 odpowiedzi 511 wizyt
0 głosów
0 odpowiedzi 1,709 wizyt

93,778 zapytań

142,736 odpowiedzi

323,388 komentarzy

63,382 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...