Dlaczego wyświetlane elementy są poprzedzone spacją?

0

Witam. Chciałbym się dowiedzieć dlaczego przy wyświetlaniu elementy są poprzedzone spacją? Tzn. Po wpisaniu:1 2 3 wyświetla się:&3 2 1 ( & <- równoważnik spacji o którą pytam, kolejne elementy mają być oddzielone).

#include <iostream>
#include <string.h>
using namespace std;
#include <stdlib.h>


int main() {
	char * tablica = new char[100];
	cin >> tablica;
	int ilosc;
	ilosc = strlen(tablica)/sizeof(char);
	for (int i = ilosc; i >= 0; i--) {
		cout <<*(tablica + i) << " ";
	}
}
1

cout <<*(tablica + i) << " "; no przecież tutaj sam wypisujesz tę spacje ** po każdym elemencie **.

0

Źle się wyraziłem, elementy mają być oddzielone, jednak spacja poprzedzająca pierwszy element jest mi zbędna. Po wpisaniu np.123456 chcę otrzymać:6 5 4 3 2 1, a dostaję: 6 5 4 3 2 1

3

for (int i = ilosc - 1; i >= 0; i--) no to tak. tablica[ilosc] jest elementem ZA ostatnim wprowadzonym elementem tablicy.

3

Wypisujesz element z pozycji ilosc a chcesz zacząć od ilosc - 1.

3
    ilosc = strlen(tablica)/sizeof(char);
    for (int i = ilosc; i >= 0; i--) {
        cout <<*(tablica + i) << " ";
    }

Pomijając już dzielenie przez sizeof(char) czyli 1 (???), *(tablica+i) to to samo co tablica[i], czyli na początku tablica[ilosc], co w tym przypadku kończy się próbą wypisania nulla.

0

Lofki max

1 użytkowników online, w tym zalogowanych: 0, gości: 1