[c] Pytanie o zapis
Ostatnio zmodyfikowano 2015-05-11 21:54
Pietia Temat założony przez niniejszego użytkownika |
[c] Pytanie o zapis » 2015-05-11 21:44:58 W kodzie # 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? *( tekst + i + j ) != *( wzor + j )
Proszę o pomoc:-) |
|
pekfos |
» 2015-05-11 21:46:37 Dereferencja + arytmetyka na wskaźnikach. To samo, co tekst[ i + j ] != wzor[ j ]
|
|
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?;-) |
|
Kaikso |
» 2015-05-11 21:50:39 Wyszukuje wzoru w tekście. @edit tekst[ i + j ] != wzor[ j ] - ten jest zalecany i czytelniejszy. |
|
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:-) |
|
« 1 » |