Article View: be.comp.programming
Article #9347Re: [C++]: Splitten van een string ... Wat doe ik fout ???
From: Alain Cloet
Date: Tue, 30 Apr 2002 20:22
Date: Tue, 30 Apr 2002 20:22
74 lines
3444 bytes
3444 bytes
"Oelewapperke" <Oelewapperke@wol.be> wrote in message
news:1020166760.487509@seven.kulnet.kuleuven.ac.be...
> goeie code (komt uit de stl tutorial op debian)
Dit is misschien wel een mogelijke code, maar is eigenlijk niet zo zinvol...
hiermee krijg je wel de oplossing, maar leer je niet programmeren, het wijkt
veel te veel af van het origineel (ik heb je geposte code niet bestudeerd,
kan misschien veel beter zijn, maar is dus voor de OP niet echt leerzaam)
(aanpassing van de code heb ik zoals gevraagd gemaild, maar ook hieronder
weergegeven voor andere ge�nteresseerden)
Voor Christophe: in de mail zit nog een afwijking... hieronder staat het
eigenlijk beter... (bij new was '- start' niet toegevoegd...)
>>
#include <iostream>
#include <string>
using namespace std;
int main()
{
char string[80] = "VOLVO OPEL VOLKSWAGEN ";
char *split;
int start = 0;
int spatie = 0;
cout<<"Afdrukken van de string: "<<string<<endl;
cout<<"lengte van de string is: "<<strlen(string)<<endl;
for(int i = 0; i < strlen(string); i++)
{
if(string[i] == ' ')
{
cout<<"Er komt een spatie voor op positie: "<<i<<endl;
spatie = i;
// split = new char[spatie - 1];
// Te klein de eerste keer (kan wel werken, maar dan
// eerder "toevallig") ; te groot anders...
// zie ook reply van haplo (voor verklaring 'te klein')
split = new char[spatie - start + 1];
// Splitsen van de string
// for(int j = start; j < spatie+1; j++)
// Waarom tot "spatie + 1", spatie is toch al voldoende ...
// Je laatste char moet 0 zijn, dus moet je dit nog 'toevoegen' na de
// laatste positie van de tijdelijke string die in onderstaande for-lus
// gemaakt wordt...
// toe te voegen - bij voorkeur - na lus, maar voor kan ook ; zie verder
for(int j = start; j < spatie; j++)
{
split[j-start] = string[j];
}
split[spatie-start] = 0; // hier zat de echte fout - deze lijn ontbrak!!!
start = spatie +1;
cout<<split<<endl;
delete[] split;
}
}
}
Technical Details
Message-ID:
<VfDz8.1812$X47.879820@iguano.antw.online.be>Path:
arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-03!supernews.com!newsswitch.lcs.mit.edu!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!newsfeed.online.be!iguano.antw.online.be!not-for-mailReferences:
<B8F31C5C.2817%christof_laeremans@hotmail.com> <khgz8.1798$X47.873206@iguano.antw.online.be> <B8F42913.29CF%christof_laeremans@hotmail.com> <1020166760.487509@seven.kulnet.kuleuven.ac.be>Show Full Headers
Complete Article Headers
X-Google-Language: DUTCH,ASCII X-Google-Thread: fcea4,966929e88b6c33f1 X-Google-Attributes: gidfcea4,public X-Google-ArrivalTime: 2002-04-30 13:38:04 PST Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-03!supernews.com!newsswitch.lcs.mit.edu!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!newsfeed.online.be!iguano.antw.online.be!not-for-mail From: "Alain Cloet" <nospam@tijd.com> Newsgroups: be.comp.programming References: <B8F31C5C.2817%christof_laeremans@hotmail.com> <khgz8.1798$X47.873206@iguano.antw.online.be> <B8F42913.29CF%christof_laeremans@hotmail.com> <1020166760.487509@seven.kulnet.kuleuven.ac.be> Subject: Re: [C++]: Splitten van een string ... Wat doe ik fout ??? Lines: 78 X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 5.00.2919.6700 X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2919.6700 Message-ID: <VfDz8.1812$X47.879820@iguano.antw.online.be> Date: Tue, 30 Apr 2002 22:22:52 +0200 NNTP-Posting-Host: 62.112.12.151 X-Complaints-To: news-abuse@noc.online.be X-Trace: iguano.antw.online.be 1020199029 62.112.12.151 (Tue, 30 Apr 2002 22:37:09 MET DST) NNTP-Posting-Date: Tue, 30 Apr 2002 22:37:09 MET DST Organization: Customer of TijdNet