1.Napisz funkcję, która przyjmie jako parametr napis (zakładamy że zawiera on tylko małe i duże litery oraz spacje). Funkcja ma wyświetlić na standardowe wyjście litery (bez rozróżniania na małe i wielkie), które wystąpiły więcej niż raz; litery mają być oddzielone spacjami.
#include <stdio.h>
#include <stdlib.h>
void zamiana_liter(char napis[])
{
int i;
for (i = 0; napis[i] != '\0'; i++)
{
if (napis[i] >= 'A' && napis[i] <= 'Z')
napis[i] += 'a' - 'A';
}
}
void zerowanie_tablicy(char tab[], int size)
{
int i;
for (i = 0; i < size; ++i)
tab[i] = 0;
}
void liczenie_znakow(char napis[], char tab[128])
{
int i;
int znak;
for (i = 0; napis[i] != '\0'; i++)
{
znak = 'a';
if (napis[i] == znak)
++tab[znak];
if (napis[i] == '\0')
znak += 1;
continue;
}
}
void wypisanie_wartosci(char tab[128])
{
int i;
for (i = 0; i < 128; ++i)
printf("%c\n", tab[i]);
}
int main()
{
char napis[] = "Ala ma Kota i Psa oraz LICZNa GROMADKe swinek";
zamiana_liter(napis);
char tab[128];
zerowanie_tablicy(tab, 128);
liczenie_znakow(napis, tab);
wypisanie_wartosci(tab);
return 0;
}
Siedzę nad tym już spory czas i nie mogę tego zrozumieć.
Kombinowałem trochę, i albo wyskakiwały mi jakieś buźki i serduszka, albo program liczył znaki, albo wyświetlał zera.
Prosiłbym o pomoc jak taki licznik tablicy znaków napisać i przede wszystkim jak to wyświetlić.