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

Wrzucanie znaków do tablicy string

Object Storage Arubacloud
+1 głos
460 wizyt
pytanie zadane 7 sierpnia 2018 w C i C++ przez VegaOrionis Początkujący (350 p.)

Witam, robię program do zmiany liczb dziesiętnych na liczby szesnastkowe. Chciałbym to mojej tablicy "hh" dodać do niej wartości. ale trzeba podać wielkość tablicy a nie chce z góry dawać jakiej wartości bo nie wiem jaka będzie wielka, wielkość ma być zależna od ilości wykonania pętli. Nie wiem jak to napisać ;/

	int aa = 74;
	int bb ;
	char znak;
	string hh;

	for (size_t i = 0; !aa == 0; i++)
	{
		bb = aa % 16;
		aa = aa / 16;

		if (bb > 9)
		{
			znak = 'A' + bb - 10;
		}
		else
			znak = bb + '0';

// tutaj kompilator mi nie przejdzie bo nie mam podanej wielości mojej tablicy hh :(
		hh[i] = znak;  
	}

 

1 odpowiedź

+2 głosów
odpowiedź 7 sierpnia 2018 przez Hiskiel Pasjonat (22,830 p.)
edycja 7 sierpnia 2018 przez Hiskiel

Witaj.

Po pierwsze nazwy zmiennych nic nie mówią, więc nazwij je jakoś sensownie.

Po drugie nie jest to tablica string, a obiekt string. Zmienia on swoją wielkość samoistnie gdy dodasz do niego znaki.

A zamiast

hh[i] = znak;

możesz napisać

hh += znak;

 

Jeśli o to Ci chodzi.

 

Pozdrawiam.

komentarz 7 sierpnia 2018 przez Jason_Nr_1 Bywalec (2,980 p.)

Poprawilem, a czy moglbyś wyjaśnic mi, jak napisać kod, aby obiekt string samoistnie zmienial swoją wielkość?

int alpha = 74;
    int betha ;
    char znak;
    string huk;
 
    for (size_t i = 0; !alpha == 0; i++)
    {
        betha = alpha % 16;
        aplha = alpha / 16;
 
        if (betha > 9)
        {
            znak = 'A' + betha - 10;
        }
        else
            znak = betha + '0';
 
        huk.append(znak);
		
    }

 

komentarz 7 sierpnia 2018 przez Hiskiel Pasjonat (22,830 p.)
Samoistnie zmienia swoją wielkość, kiedy coś do niego dodajesz. I przepraszam, ale pomyliłem się. Zamiast append użyj operatora +=.
komentarz 8 sierpnia 2018 przez VegaOrionis Początkujący (350 p.)
edycja 8 sierpnia 2018 przez VegaOrionis

"hh += znak;" Tak o to mi chodziło, dzięki!
 Teraz jeszcze muszę tylko wypisać  od tyłu to co jest pod moim stringiem, 
Chyba spróbuje użyć w tym celu drugą pętlę gdyż obecny wynik jest poprawny ale czytany od tylu ^^.

Edit:  dodałem pętle : 

for (int i = hh.length() - 1; i >= 0; i--)        
 	{                                                    
		cout << hh[i];

	}

super działa : )

2
komentarz 8 sierpnia 2018 przez Hiskiel Pasjonat (22,830 p.)
Nie musisz używać pętli. Zaincluduj <algorithm> i użyj std::reverse(nazwastringa.begin(), nazwastringa.end());
komentarz 8 sierpnia 2018 przez VegaOrionis Początkujący (350 p.)
Dzięki : )

Podobne pytania

0 głosów
2 odpowiedzi 1,827 wizyt
pytanie zadane 24 listopada 2017 w C i C++ przez panstudent Nowicjusz (190 p.)
0 głosów
3 odpowiedzi 2,538 wizyt
pytanie zadane 31 lipca 2018 w C i C++ przez Ptaszor3 Użytkownik (900 p.)
0 głosów
1 odpowiedź 95 wizyt
pytanie zadane 18 grudnia 2016 w C i C++ przez niezalogowany

92,556 zapytań

141,404 odpowiedzi

319,562 komentarzy

61,942 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...