[ query @ 22.10.2005. 12:41 ] @
U C imam dosta problema sa ARRAY i POINTERS, pa se nadam da ce mi neko pomoci da shvatim ove kodove.
Ovaj zadatak je:
Zamisli da acStudent sadrzi neki string(ime). Treba da pcTitel naprijed od tog imena dodam, ako moze stati. Koja konstrukcija odgovara tome?

Code:

#define MAXNAAM 40
int iLt;
char acStudent [MAXNAAM + 1];
char pcTitel = “ing. “; /*5 tekens */


A
Code:

iLt = strlen (acStudent);
if (iLt <= MAXNAAM – 5)
{
strcpy (acStudent + 5, acStudent);
strcpy (acStudent, pcTitel);
}


B
Code:

iLt = strlen (acStudent);
if (iLt <= MAXNAAM – 5)
{
int iTel;
for (iTel = iLt + 5; iTel >= 5; iTel--)
{
acStudent[iTel] = acStudent[iTel – 5];
};
strcpy(acStudent, pcTitel);
}


C
Code:
iLt = strlen (acStudent);
if (iLt <= MAXNAAM – 5)
{
int iTel;
char cTemp = acStudent[0];
for (iTel = iLt + 5; iTel > 5; iTel--)
{
acStudent[iTel] = acStudent[iTel – 5];
};
strcpy(acStudent, pcTitel);
acStudent[5] = cTemp;
}

D
Code:
iLt = strlen (acStudent);
if (iLt <= MAXNAAM – 5)
{
int iTel;
for (iTel = 0; iTel <= iLt + 5; iTel++)
{
if (iTel < 5)
{
acStudent[iTel] = pcTitel[iTel];
}
else
{
acStudent[iTel] = acStudent[iTel - 5];
}
}
}


Znam da je odgovor C, ali moze li mi neko pojasniti sta rade svi ovi kodovi kod A, B, C i D. Tako cu lakse skontati razliku izmedju ovoga.

Unaprijed hvala za trud. ;)
[ query @ 22.10.2005. 12:42 ] @
Zadatak 2

Recimo da acLine = 'TESTA'; cEnd treba na kraju stringa acLine dodati.

Code:

#define MAXSIZE 25
int iSize;
char cEnd,
acLine[MAXSIZE + 1];


A
Code:

iSize = strlen (acLine);
if (iSize < MAXSIZE)
{
strcat (acLine, cEnd);
}


B
Code:

iSize = strlen (acLine);
if (iSize < MAXSIZE)
{
acLine = acLine + cEnd;
}


C
Code:

iSize = strlen (acLine);
if (iSize < MAXSIZE)
{
acLine[iSize] = cEnd;
acLine[iSize + 1] = ‘\0’;
}


Odgovor C. Zasto ne moze npr. biti A?