Article View: be.comp.programming
Article #2241Re: Probleem met strings in C++
From: Kurt Bosmans
Date: Sun, 25 Jul 2004 13:39
Date: Sun, 25 Jul 2004 13:39
30 lines
1793 bytes
1793 bytes
> char *strlwr (char* tekst){
> int aantal=strlen(tekst);
> char* res = new char[aantal];
> for(int i=0; i<aantal; i++)
> res[i]=tolower(tekst[i]);
> return res;
> }
Buiten het feit dat je hier een memory leak hebt (new maar nergens
delete), vergeet je ook je resultaat string "res" te terminaten. Een
"c" string moet altijd eindigen met een '\0' karakter. Hierdoor zal je
programma "soms" werken en "soms" niet, afhankelijk van er toevallig in
je geheugen zat.
Dus je functie zou er als volgt moeten uitzien:
char *strlwr (char* tekst)
{
int aantal=strlen(tekst);
char* res = new char[aantal + 1]; // 1tje meer alloceren
for(int i=0; i<aantal; i++)
res[i]=tolower(tekst[i]);
res[i] = '\0'; // string terminaten!
return res;
}
En uiteraard moet "res" ergens met een "delete[]" terug vrijgegeven
worden door de code die deze functie oproept...
Kurt
Technical Details
Message-ID:
<4103b80b$0$6416$ba620e4c@news.skynet.be>Path:
arc1-ca.pugleaf.net!g2news1.google.com!news2.google.com!news.maxwell.syr.edu!newsfeed.icl.net!newsfeed.fjserv.net!nnx.oleane.net!oleane!news.agarik.com!skynet.be!newspost001!tjb!not-for-mailReferences:
<6jKAc.159880$da2.8238210@phobos.telenet-ops.be>Show Full Headers
Complete Article Headers
X-Google-Thread: fcea4,f17987ac718646c6 X-Google-Attributes: gidfcea4,public X-Google-Language: DUTCH,ASCII-7-bit Path: arc1-ca.pugleaf.net!g2news1.google.com!news2.google.com!news.maxwell.syr.edu!newsfeed.icl.net!newsfeed.fjserv.net!nnx.oleane.net!oleane!news.agarik.com!skynet.be!newspost001!tjb!not-for-mail From: Kurt Bosmans <kurt@NOSPAM.omicron.be> Organization: Omicron bvba Newsgroups: be.comp.programming Date: Sun, 25 Jul 2004 15:39:24 +0200 Message-ID: <4103b80b$0$6416$ba620e4c@news.skynet.be> References: <6jKAc.159880$da2.8238210@phobos.telenet-ops.be> User-Agent: Unison/1.0.2a MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 8bit Subject: Re: Probleem met strings in C++ Lines: 31 NNTP-Posting-Host: 81.241.45.5 X-Trace: 1090762764 news.skynet.be 6416 81.241.45.5:32993 X-Complaints-To: usenet-abuse@skynet.be