Zliczanie znaków w podanym ciągu

0

Witam! Podkreślam na początku, że jestem zupełnie początkujący, jeśli chodzi o programowanie i język C...
Mam dwa podpunkty w pewnym zadaniu. Pierwszy z nich polega na napisaniu programu wyznaczającego liczbę wystąpień litery "a" w ciągu znaków zakończonym znakiem "." Udało mi się wykonać to polecenie, program wygląda następująco:

screenshot-20181103115551.png

W kolejnym podpunkcie mam napisać taki sam program, z tym, że ma mi zliczyć ilość wystąpień litery "ch". Próbuję, nie wychodzi... Jakieś pomysły?

1

Przy użyciu stringa i funkcji strstr: https://stackoverflow.com/que[...]f-substring-in-string#9052540
Poza tym, było by Ci dużo łatwiej Gdybyś nie programował na białym tle:)

0

Czyli raczej nie skończy się na edycji tego, tylko będzie to wyglądać zupełnie inaczej? Przypominam, jestem zupełnie zielony...
W zmianie tła chodzi o to, że treść będzie bardziej przejrzysta, czy o coś jeszcze?

0

Jeśli to jest na studia i nie Możesz używać funkcji (jak strstr) czy wskaźników, to Pomyśl, bo da się to wyrzezać pętlami:)
A z tłem chodzi, mniej więcej o to: https://www.reddit.com/r/Prog[...]early_number_1_of_all_themes/ :)

0

No tak, chodzi o studia. Nie miałem nigdy wcześniej styczności z programowaniem, właściwie wgl nie miałem informatyki w technikum, dlatego teraz to jest dla mnie największy problem :D
No raczej szedłbym w pętle, bo podejrzewam, że takiego sposobu właśnie będą oczekiwać...

1

To życzę powodzenia (w zadaniach domowych się na forum nie pomaga)!

0

Jakby nie było, wyjdę na tym lepiej. Tak więc dzięki ;)

1

Do zrealizowania tego zadania możesz sobie napisać tylko jedną, uniwersalną funkcję. Bo pierwszy podpunk od drugiego różni się tylko długością szukanej frazy – pierwszy dotyczy szukania i zliczania jednej litery (jednego bajtu), a drugi dotyczy ciągu znaków (wielu bajtów). Dlatego też zamiast testować pojedyncze bajty, porównuj blok pamięci o zadanej długości (dla litery o długości 1, dla ciągu o większej).

Masz do dyspozycji funkcje pozwalające łatwo porównywać całe bloki pamięci, więc z jednej z nich powinieneś skorzystać. Pętla oczywiście jest konieczna, więc dobrze myślisz.

0

Zadanie zrobione. Dzięki za wszystkie podpowiedzi :)

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