Funkcja która zwraca w wyniku liczbe występujących znaków bez powtórzeń.
Ostatnio zmodyfikowano 2019-01-07 21:03
gam3 Temat założony przez niniejszego użytkownika |
Funkcja która zwraca w wyniku liczbe występujących znaków bez powtórzeń. » 2019-01-06 12:16:15 Witam Mam problem z takim oto zadaniem: Funkcja zwraca w wyniku z ilu różnych znaków składa się napis. Np.: („Ala ma kota”) =8 (Ala Mkot) Wiem jak sprawdzać w tablicy 2 znaki obok siebie, w sensie jak się powtórzy kolejno, ale nie wiem jak to zrobić przy powtórzeniu się znaku np. gdy 'a' jest pod indeksem 1, a później powtarza się na indeksie np. 5. Mógłby ktoś coś podpowiedzieć ? O to co napisałem: #include <stdio.h> #include <stdlib.h>
int f1( char[] );
int main() { char tab[ 30 ]; printf( "Podaj napis: " ); gets( tab ); printf( "%s\n", tab ); printf( "%d", f1( tab ) ); return 0; }
int f1( char tab[] ) { int i = 0, cyfry = 0, litery = 0, inne = 0, wynik = 0; char znakL = '\0', znakC = '\0', znakI = '\0'; while( tab[ i ] != '\0' ) { if( znakL == tab[ i ] ) litery--; else if( znakC == tab[ i ] ) cyfry--; else if( znakI == tab[ i ] ) znakI--; if(( tab[ i ] >= 'a' && tab[ i ] <= 'z' ) ||( tab[ i ] >= 'A' && tab[ i ] <= 'Z' ) ) { litery++; znakL = tab[ i ]; } else if( tab[ i ] >= '1' && tab[ i ] <= '9' ) { cyfry++; znakC = tab[ i ]; } else { inne++; znakI = tab[ i ]; } i++; } wynik = litery + cyfry + inne; return wynik; }
|
|
pekfos |
» 2019-01-06 16:15:09 Wiem jak sprawdzać w tablicy 2 znaki obok siebie, w sensie jak się powtórzy kolejno, ale nie wiem jak to zrobić przy powtórzeniu się znaku np. gdy 'a' jest pod indeksem 1, a później powtarza się na indeksie np. 5. Mógłby ktoś coś podpowiedzieć ? |
Skopiuj napis i posortuj w nim znaki. |
|
gam3 Temat założony przez niniejszego użytkownika |
» 2019-01-07 19:11:16 Jest jakaś gotowa funkcja do sortowania tablic char w języku C ? |
|
pekfos |
» 2019-01-07 21:02:38 qsort(). |
|
gam3 Temat założony przez niniejszego użytkownika |
» 2019-01-07 21:03:34 Dzieki ;) |
|
« 1 » |