Avatar billede baltazar_ Nybegynder
10. juli 2003 - 18:10 Der er 8 kommentarer og
1 løsning

validering af CSTRING

hvordan kan jeg kontrollere om min variable CString har dette format

00000.0000
Avatar billede jpk Nybegynder
11. juli 2003 - 09:32 #1
Jeg går ud fra du mener xxxxx.xxxx, hvor x er et tal mellem 0 og 9

bool IsvalidFormat(const CString& str)
{
  int length = str.GetLength();
  if(length != 10)
    return false;
  for(int i=0; i<5; ++i)
    if(str[i] < '0' || str[i] > '9')
      return false;
  if(str[i] != '.')
    return false;
  for(i=6; i<length; ++i)
    if(str[i] < '0' || str[i] > '9')
      return false;
  return true;
}
Avatar billede repsak Nybegynder
11. juli 2003 - 13:54 #2
jpk -> tillader C++ noget med regularexpression validation? Ville ellers være oplagt at bruge her :-)
Avatar billede arne_v Ekspert
13. juli 2003 - 19:09 #3
regular expressions er vist noget man selv skal hente i C++.
Avatar billede arne_v Ekspert
13. juli 2003 - 19:10 #4
jpk>

Jeg formoder at du mener:

if(str[i] <= '0' || str[i] >= '9')
      return false;
Avatar billede arne_v Ekspert
13. juli 2003 - 19:22 #5
Og jeg ville nok lave den som (hvis jeg altså brugte CString):

bool IsvalidFormat(const CString& str)
{
  int length = str.GetLength();
  if(length != 10) return false;
  if(str[5] != '.') return false;
  for(int i=0; i<10; i++)
    if(i != 5)
          if(!isdigit(str[i])) return false;
  return true;
}
Avatar billede arne_v Ekspert
13. juli 2003 - 19:27 #6
Af to grunde:
  - når nu der er en isdigit så kan man jo ligeså godt bruge den
  - brug af i efter afslutning af for(int i ...)  virker fint i bl.a.
    MS VC++ men er ikke validt standard C++ (scope af i slutter
    når løkken afslutter)
Avatar billede jpk Nybegynder
13. juli 2003 - 22:14 #7
arne >> nej, jeg mener ikke:

if(str[i] <= '0' || str[i] >= '9')
      return false;

men som jeg skrev...
Avatar billede arne_v Ekspert
13. juli 2003 - 22:17 #8
Du har sgu da ret.

Min fejl.

Jeg undskylder.
Avatar billede arne_v Ekspert
31. juli 2003 - 08:22 #9
baltazar>

Tid at lukke spørgsmålet ?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester