Zliczanie liter w pobranym z pliku ciągu znaków

Zliczanie liter w pobranym z pliku ciągu znaków
F7
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 26
0

Witam
Dopiero zaczynam przygodę z programowaniem ale mam do zrobienia program który :

  1. Odczyta z pliku litery : u mnie np. AjsKLSjjshaaaaaa i wyświetli je na ekranie.
  2. Wypisze ile było liter (odróżni wielkie litery od małych) : np. "A" = 1, "a" = 6.

Pierwszy podpunkt już mam ale niestety nie wiem jak zrobić drugi podpunkt :( szukałem na wielu stronach ale znalazłem tylko wypisywanie ilości wszystkich liter np. AjsKLSjjshaaaaaa i wychodziło : Plik zawiera 20 liter.

Prosiłbym o pomoc

DR
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1135
0

@Fusion789 zapoznaj sie z tablicą ASCII i if'em

_13th_Dragon
  • Rejestracja: dni
  • Ostatnio: dni
2
Kopiuj
int tb[52]={0};
char ch=fgetc(file);
if(isupper(ch)) ++tb[ch-'A'];
else if(islower(ch)) ++tb[26+ch-'a'];
kq
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Szczecin
0

ASCII tutaj nic do tego (szczególnie, że C nie gwarantuje użycia tego konkretnego standardu).

Najprościej tutaj chyba będzie zrobić tablicę wystąpień dla każdej możliwej wartości zmiennej char (trzeba ją tylko traktować jako unsigned) i ją inkrementować w przypadku wystąpienia tej literki (wystapienia[literka]++). Potem możesz wyświetlić wszystkie niezerowe, czy inne pożądane, wartości.

  • Rejestracja: dni
  • Ostatnio: dni
1

robisz tablicę liczb tylo elementową ile różnych jest znaków (256 dla jednobajtowych znaków)
a potem wystarczy że odczytasz chara i zwiększysz liczbę na identycznym indeksie tablicy

tablica[znak]++

na końcu przeleć po tablicy i wypisz te znaki które mają liczbę > 0

F7
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 26
0

Chciałbym zaznaczyć jedną ale to chyba najbardziej istotną rzecz w tym temacie : " Dopiero zaczynam przygodę z programowaniem ".

Przepraszam was bardzo ale chyba po to wrzuciłem temat w kategorii "Newbie" żebyście chociaż trochę po ludzku mi to wytłumaczyli.

Nie proszę was o gotowy kod ale tylko o to żeby wytłumaczyć problem osobie która zaczyna programowanie a nie takiej co już trochę tego programowania liznęła.

twonek
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2500
1

http://edu.i-lo.tarnow.pl/inf/alg/003_sort/0023.php
Tutaj elementami, które zliczamy są znaki, które w C mają też swój odpowiednik liczbowy, np '0' jest równy 48, '1' równy 49 itd.
Jeśli char literka = 'A'; to literka - 'A' daje wynik 0, co wykorzystał @_13th_Dragon. U niego 'A' jest zliczany pod indeksem 0, 'B' pod indeksem 1 itd.
A do małych liter dodaje 26, żeby 'a' było pod indeksem 26, 'b' pod indeksem 27.

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.