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

[c] Pytanie o zapis

Ostatnio zmodyfikowano 2015-05-11 21:54
Autor Wiadomość
Pietia
Temat założony przez niniejszego użytkownika
[c] Pytanie o zapis
» 2015-05-11 21:44:58
W kodzie
C/C++
# include <stdio.h>

int dlugosc( char * lan );
int sprawdz( char * tekst, char * wzor );

int main()
{
    char tab1[ 100 ];
    char tab2[ 5 ];
    gets( tab1 );
    gets( tab2 );
    printf( "%d\n", dlugosc( tab1 ) );
    printf( "%d\n", sprawdz( tab1, tab2 ) );
   
    return 0;
}

int dlugosc( char * lan )
{
    int i;
    int j = 0;
    for( i = 0; lan[ i ] != NULL; i++ )
    {
        j++;
    }
   
    return j;
}

int sprawdz( char * tekst, char * wzor )
{
    int i, j;
    int dltekst, dlwzor;
    dltekst = dlugosc( tekst );
    dlwzor = dlugosc( wzor );
    for( i = 0; i < dltekst; i++ )
    {
        for( j = 0; j < dlwzor; j++ )
        if( *( tekst + i + j ) != *( wzor + j ) )
             break;
       
        if( j == dlwzor )
             return i;
       
    }
    return - 1;
}
Co oznaczają zapisy?
C/C++
*( tekst + i + j ) != *( wzor + j )
Proszę o pomoc:-)
P-132096
pekfos
» 2015-05-11 21:46:37
Dereferencja + arytmetyka na wskaźnikach. To samo, co
C/C++
tekst[ i + j ] != wzor[ j ]
P-132097
Pietia
Temat założony przez niniejszego użytkownika
» 2015-05-11 21:49:12
Teraz rozumiem:-) Dziękuję za wyjaśnienie:-) A jeszcze takie pytanie - który zapis jest częściej spotykany/lepszy/bardziej czytelny?;-)
P-132098
Kaikso
» 2015-05-11 21:50:39
Wyszukuje wzoru w tekście.

@edit
tekst[ i + j ] != wzor[ j ]
 - ten jest zalecany i czytelniejszy.
P-132099
Pietia
Temat założony przez niniejszego użytkownika
» 2015-05-11 21:54:21
Chodziło konkretnie o zapis z gwiazdkami, zawsze spotykałem się zapisem
tekst[ i + j ] != wzor[ j ]
 i chciałem wiedzieć jak interpretować ten
*( tekst + i + j ) != *( wzor + j )
, serdecznie dziękuję za odpowiedzi:-)
P-132100
« 1 »
  Strona 1 z 1