Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Funkcja która zwraca w wyniku liczbe występujących znaków bez powtórzeń.

Ostatnio zmodyfikowano 2019-01-07 21:03
Autor Wiadomość
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:
C/C++
#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;
}
P-173432
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.
P-173437
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 ?
P-173448
pekfos
» 2019-01-07 21:02:38
qsort().
P-173449
gam3
Temat założony przez niniejszego użytkownika
» 2019-01-07 21:03:34
Dzieki ;)
P-173450
« 1 »
  Strona 1 z 1