Thread View: be.comp.programming
7 messages
7 total messages
Started by Tom
Mon, 16 Feb 2004 13:49
C++ beginnersvraagje, bis (karakters beoordelen)
Author: Tom
Date: Mon, 16 Feb 2004 13:49
Date: Mon, 16 Feb 2004 13:49
37 lines
1891 bytes
1891 bytes
Hey,
Meteen al een tweede vraagje, met uw permissie. :-)
Ik wil voor elk teken in een string nakijken of het binnen de ranges
a-z, A-Z of 0-9 zit. Dus doorloop ik die string en kijk met volgende
functie elk teken na dat ik tegenkom:
bool validChar(char tmp)
{
tmp = static_cast<int>(tmp);
if ((tmp > 96 && tmp < 123) ||
(tmp > 64 && tmp < 91) ||
(tmp > -1 && tmp < 10))
return true;
else
return false;
}
Dat werkt voor chars; chars die geen deel uitmaken van het alfabet geven
false terug. Zodra er een getalletje in de string zit loopt het mis. Ik
begrijp dat het raar is om zo'n int dan te behandelen met static_cast,
maar ik had niet gedacht dat dat dan zou mislukken...
Waarom gaan die ints (die ik trouwens toch meegeef als char tmp, dus ik
dacht dat die conversie wel zou lukken) niet in op (tmp > -1 && tmp <
10)?
Met excuses mocht deze vraag dommer lijken dan ik ze ervaar,
Tom
--
"Mongolian drivers do not care much about pedestrians."
--
np: Haus Arafna - Son of Cain (flac)
Re: C++ beginnersvraagje, bis (karakters beoordelen)
Author: Me...
Date: Mon, 16 Feb 2004 14:08
Date: Mon, 16 Feb 2004 14:08
51 lines
2570 bytes
2570 bytes
"Tom" <tom @ abwaerts . be> schreef in bericht
news:1188375.FnjhTKIa7l@zukunft.mine.nu...
> Hey,
>
> Meteen al een tweede vraagje, met uw permissie. :-)
>
> Ik wil voor elk teken in een string nakijken of het binnen de ranges
> a-z, A-Z of 0-9 zit. Dus doorloop ik die string en kijk met volgende
> functie elk teken na dat ik tegenkom:
>
> bool validChar(char tmp)
> {
> tmp = static_cast<int>(tmp);
>
> if ((tmp > 96 && tmp < 123) ||
> (tmp > 64 && tmp < 91) ||
> (tmp > -1 && tmp < 10))
de ascii waarden van 0 tot 9 zijn niet correct....
heb even geen tabel bij de hand maar zoek maar even op
of pas anders even aan
tmp >='a' && tmp >= 'z'
'A' 'Z'
'0' '9'
> return true;
> else
> return false;
> }
>
> Dat werkt voor chars; chars die geen deel uitmaken van het alfabet geven
> false terug. Zodra er een getalletje in de string zit loopt het mis. Ik
> begrijp dat het raar is om zo'n int dan te behandelen met static_cast,
> maar ik had niet gedacht dat dat dan zou mislukken...
>
> Waarom gaan die ints (die ik trouwens toch meegeef als char tmp, dus ik
> dacht dat die conversie wel zou lukken) niet in op (tmp > -1 && tmp <
> 10)?
>
> Met excuses mocht deze vraag dommer lijken dan ik ze ervaar,
> Tom
>
> --
> "Mongolian drivers do not care much about pedestrians."
> --
> np: Haus Arafna - Son of Cain (flac)
>
Re: C++ beginnersvraagje, bis (karakters beoordelen)
Author: Tom
Date: Mon, 16 Feb 2004 14:24
Date: Mon, 16 Feb 2004 14:24
26 lines
1695 bytes
1695 bytes
[Monday 16 February 2004 15:08] Me... in be.comp.programming:
>> if ((tmp > 96 && tmp < 123) ||
>> (tmp > 64 && tmp < 91) ||
>> (tmp > -1 && tmp < 10))
>
> de ascii waarden van 0 tot 9 zijn niet correct....
> heb even geen tabel bij de hand maar zoek maar even op
> of pas anders even aan
>
> tmp >='a' && tmp >= 'z'
> 'A' 'Z'
> '0' '9'
Ah zo. Ik weet niet waarom (misschien omdat het logisch leek), maar ik
ging er verkeerdelijk van uit dat de ascii-waarden van 0 tot 9 wel
zouden overeenkomen met hun integer-tegenhangers.
Weeral bedankt,
Tom
--
"Mongolian drivers do not care much about pedestrians."
--
np: Herbst9 - Eclipse (flac)
Re: C++ beginnersvraagje, bis (karakters beoordelen)
Author: jay
Date: Tue, 17 Feb 2004 00:01
Date: Tue, 17 Feb 2004 00:01
13 lines
1452 bytes
1452 bytes
Tom <tom @ abwaerts . be> wrote in news:2873741.yCTglsPZ6t@zukunft.mine.nu: > [Monday 16 February 2004 15:08] Me... in be.comp.programming: > >>> if ((tmp > 96 && tmp < 123) || >>> (tmp > 64 && tmp < 91) || >>> (tmp > -1 && tmp < 10)) >> Je hebt dit functietje overigens helemaal niet nodig: de standaard functie isalnum() is je vriend... -j-
Re: C++ beginnersvraagje, bis (karakters beoordelen)
Author: Tom
Date: Tue, 17 Feb 2004 05:24
Date: Tue, 17 Feb 2004 05:24
20 lines
1641 bytes
1641 bytes
[Tuesday 17 February 2004 01:01] jay in be.comp.programming:
>>>> if ((tmp > 96 && tmp < 123) ||
>>>> (tmp > 64 && tmp < 91) ||
>>>> (tmp > -1 && tmp < 10))
>>>
>
> Je hebt dit functietje overigens helemaal niet nodig: de standaard
> functie isalnum() is je vriend...
Hm. Mooi. :-)
Merci,
Tom
--
"Mongolian drivers do not care much about pedestrians."
--
np: gar nix
Re: C++ beginnersvraagje, bis (karakters beoordelen)
Author: Arnold Hendriks
Date: Tue, 17 Feb 2004 08:52
Date: Tue, 17 Feb 2004 08:52
14 lines
1880 bytes
1880 bytes
"Tom" <tom @ abwaerts . be> wrote in message news:3720801.EYi0nLVQ5E@zukunft.mine.nu... > [Tuesday 17 February 2004 01:01] jay in be.comp.programming: > > >>>> if ((tmp > 96 && tmp < 123) || > >>>> (tmp > 64 && tmp < 91) || > >>>> (tmp > -1 && tmp < 10)) > >>> > > > > Je hebt dit functietje overigens helemaal niet nodig: de standaard > > functie isalnum() is je vriend... > Hm. Mooi. :-) Waarbij je dan wel moet letten op locales. Afhankelijk van de ingestelde locale zou bv a-umlaut wel of niet door isalnum() geaccepteerd worden.
Re: C++ beginnersvraagje, bis (karakters beoordelen)
Author: Ward Poelmans
Date: Tue, 17 Feb 2004 20:21
Date: Tue, 17 Feb 2004 20:21
9 lines
1486 bytes
1486 bytes
On Mon, 16 Feb 2004 14:08:08 +0000, Me... wrote: > de ascii waarden van 0 tot 9 zijn niet correct.... > heb even geen tabel bij de hand maar zoek maar even op > of pas anders even aan 0 - 9 in ASCII tabel: 48 - 57 Ward
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads