Toon posts:

[c++] Het scheiden van een string???

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een probleempje nadat ik een regel uit een file inlees wil ik deze scheiden op de plaats van een '-' ik wil de twee delen opslaan in ieder een string variabele deel voor de streep in stNaam en na de streep - in stNummer
deze code wil niet zo werken want er wordt telkens rubbish asci achter gezet weet iemand een oplossing maybee want ik wor er wack van |:(

C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
int Interface :: stlGegevens(char sLine[], int Max)
{

   char sNummer[1];
   char sNaam[1];
   char cNu;
   string stNaam, stNummer;
   int i = 0;
   int i2 = -1;

   do
   {
     cNu = sLine[i];
     if(cNu != SEP_TEKEN)
     {
       sNaam[i] = cNu;
     }
     i++;
     stNaam = sNaam;
   }
   while ( cNu != SEP_TEKEN);

   do
   {
     cNu = sLine[i];
     if(cNu != '\0')
     {
       sNummer[i2] = cNu;
     }
     i++;
     i2++;
     stNummer =sNummer;
   }
   while ( cNu != '\0');

   cout << stNaam << endl;
   cout << stNummer <<  endl;
   //ADD IN DE STL STRUCTUUR
   return 0;

}

[ Voor 15% gewijzigd door Verwijderd op 13-01-2003 23:38 ]


  • .oisyn
  • Registratie: September 2000
  • Nu online

.oisyn

Moderator Devschuur®

Demotivational Speaker

tip: geruik [code=c++]...[/code]

Waarom gebruik je geen std::string?

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.


Verwijderd

Topicstarter
Omdat ik um aanmoet leveren aan een andere functie als string weet niet of dat hetzelfde is als std::string........... ben [understatement] niet echt de master in cpp [/understatement]
en ik krijg dus een char array aangeleverd

ja sowwy ben echt een cpp n00b

  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
aanvulmode:
http://www.dinkumware.com....aspx?b=p/&h=string2.html
http://www.dinkumware.com...2.html#basic_string::find om preciezer te zijn :)
En dan zou ik het inlezen lekker overlaten aan een getline() van een std::istream

[punt ter verbetering]
verder is het normaal gesproken std::string, std::cout, std::endl
[/punt der verbetering

[ Voor 4% gewijzigd door Glimi op 13-01-2003 23:45 ]


Verwijderd

Tip: bekijk de array lengtes eens van de arrays die je hebt aangemaakt ;)

  • .oisyn
  • Registratie: September 2000
  • Nu online

.oisyn

Moderator Devschuur®

Demotivational Speaker

Glimi schreef op 13 January 2003 @ 23:44:
En dan zou ik het inlezen lekker overlaten aan een getline() van een std::istream


neuh, eerder std::getline (), die std::strings kan lezen (dat kan istream::getline niet) ;)

Overigens wordt max ook nooit gecontroleerd?
Maar goed, als je toch met char arrays werkt dan kun je net zo goed met strchr () de '-' opzoeken (of string::find () als je echte strings gebruikt)

de delen kopieren kun je vervolgens met strncpy () (voor het eerste deel) en strcpy () (voor het 2e deel) doen

[ Voor 35% gewijzigd door .oisyn op 13-01-2003 23:53 ]

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.


Verwijderd

Topicstarter
Verwijderd schreef op 13 January 2003 @ 23:48:
Tip: bekijk de array lengtes eens van de arrays die je hebt aangemaakt ;)
Ja maar het maakt niet zoveel uit of ik daar nu 10 of 1 in zet er komen evenveel vage rubbish tekens bij aan het eind

Verwijderd

Topicstarter
ow neej toch ni hahahaha wat een lul ben ik

  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 21-08 17:14
En waarom return je eigenlijk altijd 0? Kun je dan niet beter
code:
1
void Interface :: stlGegevens ( std::string line )
genruiken ?

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein

Pagina: 1