ďťż

Ładny brzuch

Witam.
Mam następujący problem. Dopiero zacząłem swoją przygodę z c++ i napotkałem problemy z obsługą ciągów znakowych. Mam napisać program, który jako parametr otrzymuje plik z kodem c++ i dokonuje analizy kodu polegającej na wyszukaniu wszystkich funkcji wraz z informacją w jakich wierszach kodu zostały one wywołane.
Problem zacząłem rozwiązywać w ten sposób:

do {
plik.getline(bufor,sizeof(bufor)); // pobieram linie do zmiennej
strcpy(linia,bufor); // kopiuje bufor do zmiennej lancuchowej linia
point=strstr(bufor,"void"); //zmienna wskaaznikowa wskazuje na pierwszy znak szukanego lancucha

if (point != NULL) // warunek - jesli wskaznik nie wskazuje na element posty czyli znaleziono void
{
a=*point;
cout << "W wierszu nr:" << wiersz << " zostala zadeklarowana funkcja: " << linia << endl;
i=0;
}
wiersz ++;
} while (!plik.eof());

ale... ale... nie potrafie wyciągnąć (skopiować) samej nazwy funkcji po znalezieniu void.. Myślę że powinienem "przesunąć" wskaźnik o 5 do przodu czyli będzie wskazywała na miejsce po void i potem kopiować znak po znaku... ale nie wiem gdzie to przechowywać? Czy do jakieś tablicy to wrzucać? sam nie wiem jak się do tego zabrać. Będę wdzięczny za jakiekolwiek wskazówki. Jednocześnie przepraszam jeśli pytam o sprawy proste,.. ale ja naprwadę zaczynam a na forum to mój pierwszy post.. z góry dziękuję za pomoc..



Wyciągnij z tego potrzebne Ci fragmenty :)char b[256] = "    void main()"; char *c = new char[256], *point = new char[256]; point = strstr(b,"void"); if (point) { c = (char*) ((int) b+strlen(b)-strlen(point)+5); printf("%s\n",c); }

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •