Diskuze: Najdenie zadaneho retazca v súbore. C
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 6 zpráv z 6.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.
Ak si si prešiel túto kapitolu: "2. díl - Práce s textovými soubory (txt) v jazyce C"(http://www.itnetwork.cz/…vymi-soubory), tak je tam tento kód:
char buffer[1024];
while (fscanf(p_soubor, " %1023[^\n]", buffer) != EOF)
{
//......
}
do bufferu načítaš celý riadok zo súboru, potom stačí keď takýmto spôsobom prejdeš cez buffer,napr. ak budeš vedieť aká je dĺžka riadka:
meno[] = "Matus";
int meno_dlzka = 5;
for(i = 0; i < dlzka; i++){
if(meno[0] == buffer[i]){
int index = i+1;
p = 1;
for(j = 1; j < meno_dlzka;j++){
if(meno[j] == buffer[index]){
index++;
p++;
}
else
break;
}
}
if(p == dlzka && buffer[index] == ' ')
final = 1;
}
Dakujem za odpoved. Mam jednu otazku ked tam je 1 riadok tak to prebehne 1x dobre nacita to prvy riadok a vsetky mena ale stale potrebujem nejaku funkciu ktoru priradim premenj dlzka ktora mi urci dlzku toho riadku napriklad Jano Peter je na prvom riadku by mi vratilo 10 a potom to moze zacat skenovat.
Funkcia strlen - http://www.tutorialspoint.com/…n_strlen.htm;
v tomto prípade:
dlzka_riadka = strlen(buffer);
Includuj knižnicu string.h a použi funkciu
char *strstr(char *s1, char *s2);
Nájde prvý výskyt reťazca s2 v reťazci s1 a vráti pointer na tento
výskyt, alebo vráti NULL v prípade neúspechu.
Samozrejme, to by bolo najlepšie riešenie, avšak podľa mňa by preňho nebolo vyhovujúce.Ako vraví, C-éčko sa začal učiť pred pár dňami, preto sa takýmto spôsobom,aký si vybral, naučí zo začiatku oveľa viac, ako iba použitím funkcii. Je ale dobré, aby vedel aj o tejto možnosti.
Zobrazeno 6 zpráv z 6.