/ Forside / Teknologi / Udvikling / C/C++ / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
jdjespers.. 500
kyllekylle 500
Bech_bb 500
scootergr.. 300
gibson 300
molokyle 287
10  strarup 270
string
Fra : Jan


Dato : 04-02-03 18:09

Hei

Er det noen som kan hjelpe meg med hvordan jeg skal plukke ut data fra en
streng

Det kan være 2 typer
Alt 1.

"Pris 123&"

Her ønsker jeg å plukke ut teksten "Pris" til en string og prisen 123 til en
annen. Det er alltid et mellomrom mellon "Pris" og "prisen", og strengen
avsluttes alltid med &.

Alt 2. Kommer strengen uten mellomrom og pris eks
"Pris&", her må jeg vite at det ikke er pris.

Hilsen Jan




 
 
Igor V. Rafienko (04-02-2003)
Kommentar
Fra : Igor V. Rafienko


Dato : 04-02-03 18:30

[ jan@blomberg.no ]

[ ... ]

> Er det noen som kan hjelpe meg med hvordan jeg skal plukke ut data
> fra en streng


Det kommer an på hvor komplisert input'en din egentlig er.


> Det kan være 2 typer
> Alt 1.
>
> "Pris 123&"
>
> Her ønsker jeg å plukke ut teksten "Pris" til en string og prisen 123 til en
> annen. Det er alltid et mellomrom mellon "Pris" og "prisen", og strengen
> avsluttes alltid med &.


Da er det veldig enkelt:

1. finn første mellomrom (fx. vha std::string::find/strchr)
2. plukk ut alt fra starten til det mellomrommet
(std::string::substr/memcpy)
3. finn fram til det første ikke-blanke. Husk posisjonen (kall den A)
4. finn fram til &. Kall posisjonen B. Ta vare på tegn i intervallet
[A,B]

Hva er problemet?


> Alt 2. Kommer strengen uten mellomrom og pris eks
> "Pris&", her må jeg vite at det ikke er pris.


.... Dersom punkt 3 i oppskriften over feiler, vet du at input'en ikke
er slik du vil den skal være.

Jeg spør igjen -- hva er problemet?





ivr
--
<peder> igorr: tcl ja... det er fra de dypeste avgrunnene i helvete det...
<peder> php er bare fra foajeen
            -- pederst på irc

Mads Jensen (04-02-2003)
Kommentar
Fra : Mads Jensen


Dato : 04-02-03 18:33

Hej

> Alt 1.
>
> "Pris 123&"
>
> Her ønsker jeg å plukke ut teksten "Pris" til en string og prisen 123 til
en
> annen. Det er alltid et mellomrom mellon "Pris" og "prisen", og strengen
> avsluttes alltid med &.

Læs strengen char for char, og put ind i to forskellige strenge, pris og
pristal, fx.
Indtil du støder på et " ", putter du char i strengen pris.
Indtil du støder på et "&" putter du tallet/char i strengen pristal.

> Alt 2. Kommer strengen uten mellomrom og pris eks
> "Pris&", her må jeg vite at det ikke er pris.

Gør noget ala. i ex. 1

/mads






Rasmus Christian Kaa~ (04-02-2003)
Kommentar
Fra : Rasmus Christian Kaa~


Dato : 04-02-03 20:23

> "Pris 123&"


#include <string.h>

int main(int argc, char **argv)
{
char str[] = "Pris 123&";
char *Pris = strtok(str, " ");
char *Kroner = strtok(NULL, " ");
printf("%s %s\n", Pris, Kroner);
return 0;
}

> "Pris&", her må jeg vite at det ikke er pris.

Kan sikkert tjekkes ved at kigge i man-siderne for strtok.





Søg
Reklame
Statistik
Spørgsmål : 177491
Tips : 31966
Nyheder : 719565
Indlæg : 6408458
Brugere : 218886

Månedens bedste
Årets bedste
Sidste års bedste