[c++] string formatteren

Pagina: 1
Acties:

  • Zynth
  • Registratie: September 2001
  • Laatst online: 29-07 15:30
ik heb een string: std::string regeltje
voorbeeld: "blaat[65"

wat er moet gebeuren is:
de tekens vòòr de '[' moeten in de string blijven.
de tekens na de '[' moeten in een int.

wat er dus over moet blijven:
string regeltje = "blaat";
int a = 65;

ik heb een aantal dingen geprobeerd, door het bijvoorbeeld te proberen met substr() etc..
maar ik blijf maar fouten krijgen.

iemand een idee?

  • Pooh
  • Registratie: April 2001
  • Niet online

Pooh

Lees eens een boek

Lompe boeren oplossing:
code:
1
2
3
4
5
6
7
int i = 0;
while (regeltje[i] != ']') {
    nieuwregeltje[i] =  regeltje[i];
    i++;
}
i++;
int a = 10*regeltje[i] + regeltje[i+1];

de rest mag je zelf doen...

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 09-09 22:48

.oisyn

Moderator Devschuur®

Demotivational Speaker

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
string regel = "blaat[65";
string blaat;
int i;

int pos = regel.find ('[');
if (pos == string::npos)
{
    ... geen [ gevonden
}
else if ((pos == 0) || (pos == regel.length () - 1))
{
    ... string heeft niets voor of na de [ staan
}
else
{
    blaat = regel.substr (0, pos);
    i = atoi (regel.c_str () + pos + 1);
}

niet getest enzo, disclaimer, bla bla, je kent het wel :)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • Zynth
  • Registratie: September 2001
  • Laatst online: 29-07 15:30
hmz...
hij zeurt:
simple_server_main.cpp:55: cannot convert `data' from type `string' to type `const char *'

waarom kan ik trouwens niet dit doen?

char p[] = data.c_str();

dat zou het heeeele gebeuren een stuk makkelijker maken :)
de rest kan ik dan zelf wel...

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 09-09 22:48

.oisyn

Moderator Devschuur®

Demotivational Speaker

omdat c_str () een const char * teruggeeft

bovendien heb je daar een array, geen pointer. Wat je moet doen is
code:
1
const char * ptr = data.c_str ();

maar wat is er mis met mijn oplossing?
na mijn edit :P

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.