[ tosheen_su @ 07.05.2007. 14:03 ] @
imam neki nejasnoca u vezi ovog zadatka, jednostavno ne razumem shta radi sledeci kod
pored kojeg sam stavio komentar "?", pa bih najlepshe zamolio ako neko mozhe da mi objasni.

Code:

#include <iostream>
#include <string>
using namespace std;
char * reversestring(char *str)
{
    int len=strlen(str);   //len promenljiva ima vrednost 6

     char * result=new char[len+1]; //stvara pokazivach  koji ukazuje na char
     //koji ima dimenziju u ovom sluchaju [7]???
    char *res=result+len;     // ovo mi uopshte nije jasno?
    *res--='\0';     // ??
    while(*str)
        *res--=*str++;
    return result;
}
int main () {
    char *str="zdravo";
    cout <<reversestring(str) <<endl;
    return 0;
}
[ 2stamlers @ 07.05.2007. 15:51 ] @
Code:
char * result=new char[len+1];


Stvara novu promenljivu tipa niz karaktera, i zauzima memorijski prostor za niz, i jedan dodatni bajt za termination character '\0'

Code:
char *res=result+len;


Pokazivac res se pozicionira na ADRESU na koju pokazuje niz result i na tuadresu se dodaje jos duzina niza, znaci jos 6 bajtova u ovom konkretnom slucaju, tako da sada res pokazuje na jedno mesto iza zadnjeg karaktera prosledjenog stringa.

Code:
*res--='\0';


Na zadnje mesto se dodaje termination character i ujedno se res pozicionira na predzadnji karakter.

pozz
[ absBeg @ 07.05.2007. 16:53 ] @
>
A ljudi jeste mu zakomplicirali kod. LOL
Mislim, drago mi je da jeste, kad trazi da mu zadacu radi neko drugi,
ali zar ovo sve nije moglo jednostavnije da se uradio preko ifstream i
ofstream objekata, citanje preko get(karakter) funkcije, a binarni rad
preko write() i read() ?!