Obliczanie długości łańcucha oraz ilości poszczególnych znaków

0

Napisalam program w ktorym uzytkownik ma wpisac przykladowy tekst a program ma obliczyc dlugosc lancucha oraz wszystkie konkretne liczby a - z bez polskich znakow, tylko mam problem z tym ostatnim zadaniem. Czy pomoglby mi ktos zmodyfikowac moj program, zeby obliczal konkretnie literki a nie tylko ile ich jest ?

#include <stdio.h>

int main(void) 
{ 
printf("Prosze podac napis: \n");
int litery = 0; 
int znaki = 0; 
int c; 
while ((c = getchar()) != '\n') 
{ 
putchar(c); 
znaki++; 
if( (c>= 65 && c<= 90) || (c>=97 && c<=122) ) 
litery++;
} 
printf("\nIlosc wszytskich znakow = %d\nIlosc liter = %d\n",znaki,litery); 
return 0; 
}
1

Tworzysz tablicę int[256], potem przelatujesz string pętlą for i zwiększasz zawartość elementu tablicy o 1. Indeks elementu który zwiększasz to kod ascii znaku który wczytałeś w danym przebiegu pętli. Na końcu pzrelatujesz pętlą for tą utworzoną tablię int[256] i wypisujesz tylko te wartosci które są większe od 0.

1

Zamiast: if( (c>= 65 && c<= 90) || (c>=97 && c<=122) )
Lepiej zapisać: if(('A'<=c && c<='Z')||('a'<=c && c<='z'))
Lub też: if(isalpha(c))

0

a tak żeby wypisało ile jest np w danym zdaniu liter a, b, c itd ?

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