Wczytywanie „znak po znaku” cyfr oraz wyrazów w C++

Czasami podczas programowania musimy w specyficzny sposób wczytać jakieś znaki wprowadzane przez użytkownika tak aby potem wykonać na nich operacje. Mogą to być na przykład liczby, które trzeba wczytać cyfra po cyfrze i każdą z osobna zapisać przykładowo w osobnym elemencie tablicy lub po prostu jakiś wyraz, który musimy wczytać litera po literze i również każdy znak zapisać osobno. Jak zatem zrobić to sprawnie i szybko?

Fot: Paul Williams, CC BY-ND 2.0.

Fot: Paul Williams, CC BY-ND 2.0.

Problem ten można rozwiązać na kilka sposobów, należy jednak pamiętać, że nie możemy tutaj przypisać danego wyrazu bądź liczby zapisanej w jakiejś zmiennej (obiekcie) bezpośrednio do tablicy typu char, jak często myśli wiele osób. W artykule „Tablica typu Char – Jak w prosty sposób przechowywać ciągi znaków?” szczegółowo opisałem iż można tak zrobić tylko i wyłącznie w momencie w którym dany wyraz zapisujemy bezpośrednio do tworzonej właśnie tablicy.

scanf()

Przy wczytywaniu danych „znak po znaku” możemy zastosować wspomnianą już tablicę char oraz funkcję scanf() opisaną bardziej szczegółowo w artykule „Wczytywanie i wypisywanie danych w C++ za pomocą Scanf i Printf – szybsza alternatywa dla cout oraz cin„. Jak to zrobić?

Po uruchomieniu powyższego kodu i podaniu jakiegoś wyrazu bądź liczby każda litera/cyfra zostanie zapisana w oddzielnej komórce tablicy tab, a na końcu za pomocą pętli zostanie wyświetlony cały łańcuch znaków.

Udało nam się zapisać jakiś ciąg znaków w tablicy, ale jak wczytać na przykład liczby?

Tutaj należy pamiętać, że każdy znak typu char to tak naprawdę kod ASCII. Od wczytanej liczby wystarczy więc odjąć 48 i w ten sposób uzyskamy liczbę na której możemy wykonywać zwykłe działania arytmetyczne:

getchar()

Przy wczytywaniu danych „znak po znaku” zastosujemy funkcję getchar(), za pośrednictwem której będziemy pobierać z wejścia pojedyncze znaki.

Po uruchomieniu powyższego kodu i podaniu jakiegoś wyrazu bądź liczby każda litera/cyfra zostanie zapisana w oddzielnej komórce tablicy tab, a na końcu za pomocą pętli zostanie wyświetlony cały łańcuch znaków.

Udało nam się zapisać jakiś ciąg znaków w tablicy, ale jak wczytać na przykład liczby?

Tutaj należy pamiętać, że każdy znak typu char to tak naprawdę kod ASCII. Od wczytanej liczby wystarczy więc odjąć 48 i w ten sposób uzyskamy liczbę na której możemy wykonywać zwykłe działania arytmetyczne. Proszę zwrócić tutaj uwagę, że dane te należy wczytać do tablicy na przykład typu int:

Przeczytaj również

, , , , , , , ,