🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: be.comp.programming
Article #2426

Re: Probleem met strings in C++

#2426
From: Kristoffel
Date: Sat, 19 Jun 2004 14:08
60 lines
2811 bytes
Kristoffel wrote:
> Skender wrote:
> 
>> Ik heb een programmatje geschreven dat postcodes zoekt als oefening op
>> strings, maar het werkt niet zoals het zou moeten.
>>
>> Ik heb een bestand "belgie" dat postcodes bevat.  Een lijn per gemeente,
>> zoals bijvoorbeeld
>> 9000Gent
>> 9840De Pinte
>>
>> De postcodes staan op http://vrijzijn.be/belgie
>> M'n code:
>>
>> 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;
>> }
>>
> 
> Ik heb je probleem kunnen simuleren met versie 3.2.2.
> Je doet hier een *new*, maar er gebeurt nooit een *delete* !
> Het kan zijn dat vorige versie van gcc hier geen probleem mee hadden, 
> maar het is niet erg proper.
> 
> Pas je functie aan :
> 
> char *strlwr (char *tekst) {
>   int aantal=strlen (tekst);
>   //char* res = new char[aantal];
>   for (int i = 0; i < aantal; i++)
>     tekst[i] = tolower(tekst [i]);
>     // res[i] = tolower(tekst [i]);
>   return tekst;
>   // return res;
> }
> 
> en je hebt geen problemen meer.
> Als 'tekst' niet mag wijzigen, alloceer met new dan een variable in main 
> (of in naamBevat), en pas er nadien een delete op toe.
> 
> -- 
>  Kristoffel

Best ook Gemeente::naamBevat aanpassen, anders verander je het attribuut 
gemeente.naam in kleine letters!

bool Gemeente::naamBevat (char *p_naam) {
   char *res = new char [strlen (getNaam ())+1];
   strcpy (res, getNaam ());
   bool ret = strstr (strlwr(res), strlwr (p_naam)) != 0;
   delete res;
   return ret;
}

--
  Kristoffel
Technical Details
Message-ID: <FNXAc.160366$TL1.8208446@phobos.telenet-ops.be>
Path: arc1-ca.pugleaf.net!g2news1.google.com!news1.google.com!news.glorb.com!border1.nntp.dca.giganews.com!nntp.giganews.com!newsfeed.cwix.com!ossa.telenet-ops.be!phobos.telenet-ops.be.POSTED!not-for-mail
References: <6jKAc.159880$da2.8238210@phobos.telenet-ops.be> <epXAc.160351$_b2.8245342@phobos.telenet-ops.be>

Show Full Headers
Complete Article Headers
X-Google-Language: DUTCH,ASCII-7-bit
X-Google-Thread: fcea4,f17987ac718646c6
X-Google-Attributes: gidfcea4,public
Path: arc1-ca.pugleaf.net!g2news1.google.com!news1.google.com!news.glorb.com!border1.nntp.dca.giganews.com!nntp.giganews.com!newsfeed.cwix.com!ossa.telenet-ops.be!phobos.telenet-ops.be.POSTED!not-for-mail
From: Kristoffel <kdg1955@yahoo.com>
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20040113
X-Accept-Language: en-us, en
MIME-Version: 1.0
Newsgroups: be.comp.programming
Subject: Re: Probleem met strings in C++
References: <6jKAc.159880$da2.8238210@phobos.telenet-ops.be> <epXAc.160351$_b2.8245342@phobos.telenet-ops.be>
In-Reply-To: <epXAc.160351$_b2.8245342@phobos.telenet-ops.be>
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Transfer-Encoding: 7bit
Lines: 60
Message-ID: <FNXAc.160366$TL1.8208446@phobos.telenet-ops.be>
Date: Sat, 19 Jun 2004 14:08:37 GMT
NNTP-Posting-Host: 195.130.140.22
X-Complaints-To: abuse@telenet.be
X-Trace: phobos.telenet-ops.be 1087654117 195.130.140.22 (Sat, 19 Jun 2004 16:08:37 MEST)
NNTP-Posting-Date: Sat, 19 Jun 2004 16:08:37 MEST
Organization: Telenet Internet