Wyświetlanie wszystkich znaków pobranej wcześniej linii tekstu

Wyświetlanie wszystkich znaków pobranej wcześniej linii tekstu
PY
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 11
0

Cześć, mam problem z napisaniem takiego programu który wyświetla osobno wszystkie znaki pobranej wcześniej linii tekstu.
Gdy wpisuję jakieś zdanie to pierwsza litera ląduje na końcu, zamiast "A l a m a k o t a" dostaję " l a m a k o t a a". zacząłem co dopiero naukę c i c++ na studiach 2 miesiące temu i jestem na etapie instrukcji warunkowych, pętli i funkcji.
Z góry dziękuję za pomoc.

Kopiuj
#include<iostream>
using namespace std;

int main()
{
char napis[100];
cout << "Wpisz tekst : ";
		cin >> napis[100];
		cin.getline(napis, 100);

		for (int i = 0; napis[i] != 0 ; i++)
		{
				cout << napis[i] << endl;
			
		}
	system("pause");
	return 0;
}
kq
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Szczecin
4
Kopiuj
cin >> napis[100];
cin.getline(napis, 100);

w pierwszej linii wczytujesz jeden znak do 101. elementu tablicy napis (co jednocześnie jest UB, bo to dostęp poza zakresem), w drugiej wczytujesz dalej.

grzesiek51114
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2442
1

Użyj klasy string do wczytywanie tekstu.

Kopiuj
#include <iostream>
#include <string>
using namespace std;
 
int main() {
	string text = "Grzesiek";
	for(int i = 0; i < text.length(); i++)
	{
		cout << text[i] << " ";
	}
	return 0;
}

https://ideone.com/jIiBFU

PY
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 11
0

Bardzo dziękuję za pomoc i expresową odp. :) Życzę miłego wieczoru.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.