Szó keresése ASCII fájlban C -re kellene!

Szó keresése ASCII fájlban C -re kellene!
2004-11-22T13:30:19+01:00
2004-12-13T15:39:23+01:00
2022-10-23T04:41:51+02:00
ShadowX
Nos kellene nekem a köv. program C-ben. Ha valakinek megvan, megköszönném.
A program tehát a következő:

A program feladata egy karaktersorozat előfordulásainak megszámlálása az inputban. A program a standard inputról bekér egy sztringet, és az inputban megszámlálja annak az összes előfordulását. Az output az előfordulások száma soronként, a sor számával együtt (csak amelyik sorban legalább egyszer szerepel), és összesen. Az átlapoló előfordulások is számítanak (például az 'ababab' sztringben az 'abab' kétszer szerepel: 'ABABab' és 'abABAB'). A kis- és nagybetűk különbözőnek számítanak. A példában a keresett szó: 'ring'.

Példa input:
one ring to rule them all,
one ring to find them,
one ring to bring them all
and in the darkness bind them

Példa output:
1. sor: 1
2. sor: 1
3. sor: 2
Szerkezeti abra szukseges a bemutataskor
- A program legyen megfeleloen kommentezve (lesz ugyanott pelda)
- A program legyen megfeleloen tagolva
- Ha a feladat mast nem ir, az inputot a 'be.txt'-bol kell venni
- Ha a feladat mast nem ir, az outputot a 'ki.txt'-be kell irni
- Ha a feladat nem specialis, az egesz szamok elfernek a longint -ben
- A sztringek legfeljebb 255 hosszuak
- Ha elore megadott maximalis ertekrol van szo, az konstanst jelent

Előre is köszi mindenkinek!
ShadowX
Mutasd a teljes hozzászólást!

  • Teljes kód helyett inkább egy-két ötlet
    Csinálhatod úgy, hogy egyből fájlba írsz, de valamilyen adatszerkezetbe is pakolhatod a gyakoriságot, és aztán azt bejárva kírhatod az output fájlba.

    Egy ciklusban olvasod az input fájlt soronként.
    Kell írnod egy mintaillesztést (bizonyára volt szó róla előadáson és gyakorlaton egyaránt). Ez szebb ha külön függvénybe kerül, amit a beolvasot sorral és a mintával paraméterezel, és a darabszámot adja vissza

    Aztán az eredményt kiírod az output fájlba( szintén soronként)

    Hidd el nem túl bonyolult, és megéri törni a fejed rajta.

    Ha elakadsz szívesen segítek, de szerintem ne várd, hogy más megírja helyetted
    Ha nem kódolsz, sosem leszel programozó ( bár papírt szerezhetsz róla )
    Mutasd a teljes hozzászólást!
  • Hajra! Ess neki!

    Hol akadtal el?

    Morzel
    Mutasd a teljes hozzászólást!
  • Hidd el, nem is akarok programozó lenni. Infotanári szakra járok és első évbe dettó ugyanazt tanulom, mint egy programozó (és a mindenem tele van már vele). Amúgy most 2. hete hogy C-ben tanulok programozni és az órák elég felületesek, így nem tudok mihez kezdeni az egésszel.

    Ja, és Pascalban megvan, csak C-ben kellene.
    Mutasd a teljes hozzászólást!
  • És hogy akarod a csemetéket tanítani majdan, ha két nap alatt arra se voltál képes, hogy egy néhánysoros kész pascal programot átírjál C-re?

    Ha leendő informatika tanárként tele van a tököd az alapok alapjával, miért nem népművelő-népitáncos szakra jelentkeztél?

    Ha ezzel gondjaid vannak, mit fogsz csinálni, ha jönnek az objektumok és osztályok, mit fogsz kezdeni az opreációs rendszerekkel?
    Mutasd a teljes hozzászólást!
  • Ez igaz. Meg bizonyára tudtad, hogy mi vár rád majd infotanárként. Alapvető dolog, hogy egy sztechtanár tudjon alapszinten programozni.
    Ha megvan pascalban, nem értem, miért nem tudod c-be írni. Némi ráfordítással (pl. prog.hu-s cikkek olvasásával) simán megcsinálhatnád. És tényleg nem érdemes kihagyni ezeket az alapokat, mert a későbbiekben semmit nem fogsz tudni megcsinálni.
    Egyébként éppen erre az elvre kéne nevelned a diákokat. Hogy csinálod meg, ha még te sem tudod? "Hát gyerekek, ha nem tudtok megcsinálni vmit, menjetek a prog.hu-ra, és csináltassátok meg vkivel..."
    Mutasd a teljes hozzászólást!
  • Bocs HAME, ez ShadowXnek akart menni.
    Mutasd a teljes hozzászólást!
  • Köszönöm szépen a segítséget, lehet záratni a témát. Kemény két hét alatt alig hangzott el valami C-ből, csak elrontották az időpontokat és ezért lett ennyire sürgős a programok beadása. Pascal kötelező programot 7 órai gyakorlat és előadás után kellett beadni, az sikerült is. C-ből meg volt összesen 1 gyak, meg 1 előadás, ami konkrétan a programozási részről szólt. Tényleg köszi mindenkinek.
    Ja és én nem tehetek arról, hogy valaki egy programozó zseni, más meg nem.
    Mutasd a teljes hozzászólást!
  • Vannak könyvek is a világon...
    Mutasd a teljes hozzászólást!

  • Tessék itt a progi :))

    #include <stdio.h>

    #include <string.h>



    int sorcheck(char filenev[80]) /* fuggveny ami a fileok sorainak szamat adja meg*/

    {

    char str[200]; /*a sorokat ide taroljuk el*/

    FILE *f; /*file tipusu pointer*/

    int i=0;



    f =fopen(filenev, "r"); /*megnyitas*/

    while( !feof(f)) /*amig nem erunk a file vegere*/

    {

    fgets(str,200,f); /*str-be irjuk sort es ugr. taroljuk i-be*/

    i++;

    }



    fclose(f);

    return i; /*out ertek*/

    }



    int hasonlit(char x[200],char y[100],int c) /*fuggveny ami keresi a beadott szo elofordulasat*/

    {

    int a,l=0,counter=0;

    char *q;

    char *z;

    z=&y[0];



    for(a=0; x[a]!=0; a++)

    {

    if (x[a]==y[0])

    {

    q=&x[a];

    l=strncmp(q,z,c);



    if (l==0)

    {

    counter++;

    }

    }

    }

    return counter;

    }



    int sorok_szama,ker_str_hossz,eredmeny[200],osszesen=0,g;

    char keresett[100];

    char aktualis_sor[200];

    FILE *f;



    int main(void)

    {

    sorok_szama=sorcheck("input.txt"); /*sorok szama megvan */



    printf("kerem a vizsgalando szot\\\\n");

    scanf("%s",keresett); /*a vizsgalando str tarolasa*/



    ker_str_hossz=strlen(keresett); /*a vizsgalando str hossza*/



    f=fopen("input.txt","r");



    for(g=1; g<=sorok_szama;g++)

    {

    fgets(aktualis_sor,200,f);



    eredmeny[g]=hasonlit(aktualis_sor,keresett,ker_str_hossz);



    osszesen+=eredmeny[g];



    if (eredmeny[g] !=0)

    printf("%d. sorba %d db elofordulas \\\\n",g,eredmeny[g]);

    }

    fclose(f);



    printf("Osszesen %d talalat van \\\\n",osszesen);





    return 0;

    }
    Mutasd a teljes hozzászólást!
  • Köszi, de közben megoldódott, de remélem másnak segítesaz vele.
    Mutasd a teljes hozzászólást!

  • Annyi kérdésem lenne, hogy miért nem fordul ez a progi LINUX alatt?
    (XP alatt tökéletes)

    Sürgős!

    Köcce: ICHernád
    Mutasd a teljes hozzászólást!
  • Ilyen hibaüzenettel fordul:
    /tmp/cc87peF4.o(.eh_frame+0x11): undefined reference to '__gxx_personality_v0'
    collect2: ld returned 1 exit status


    :)dv: H.
    Mutasd a teljes hozzászólást!
  • Nem c++.
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd