c++ newbie spørgsmål

Tags:    programmering

Hej allesammen

Jeg har en streng "%lunken,varm,stærk,hård%"

som jeg skal have fjernet '%' tegnene fra.

char streng[22]="%lunkenvarmstærkhård%", nystreng[22]="";

void udskil ()
{
char *pstreng = &streng[22];
do
{
*pstreng++ = nystreng[22];
}
while (streng != '%');
}

Den giver en cannot convert 'char' to 'char *' borland builder 5

Nogen der kan hjælpe?




Denne linie:
char *pstreng = &streng[22];
Sætter pstreng til at pege på elementet lige efter enden på streng, det er nok ikke det du mener.

Du mener måske:
char *pstreng = streng;
eller (det er det samme):
char *pstreng = &streng[0];

Derved kommer pstreng til at pege på det første element i streng.

Denne linie:
*pstreng++ = nystreng[22];
Flytter indholdet af den byte der står lige efter enden på nystreng over i streng(/pstreng). Det er nok ikke det du ønsker, fordi:
1: Du vil flytte den anden vej (Fra streng (pstreng) til nystreng)
2: Du skal tælle op fra derhvorfra du flytter.

Man kunne lave noget i stil med:
int srcidx, destidx;
for(srcidx = 0, destidx = 0; streng[srcidx] != 0; srcidx++)
if(streng[srcidx] != '%')
nystreng[destidx++] = streng[srcidx];
nystreng[destidx] = 0; // husk at afslutte nystreng



Jeg kunne godt nok ikke lige finde ud af at rette lige præsic det du havde lavet men ville lige se om jeg ikke selv kunne lave et program som gjorde det samme! Her er det hvis du kan bruge det til noget:
Fold kodeboks ind/udKode 




t