Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » In einem String alphanumerische Zeichen entfernen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
01.08.2005, 17:34 Uhr
ssd



Guten Tag

Ich habe ein CString, von welchen ich die Ziffern extrahieren sollte. Wie mache ich das am besten, so dass ich am Schluss nur die Ziffern habe ?
Gibt es in der MFC/C++ eine Funktion, welches das Problem löst ?

Der String sieht so aus: "0 d 0 h 0 m 10 s 953 ms"

Vielen Dank für die Hilfe

Daniel

VC6.0
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
01.08.2005, 17:42 Uhr
deKeep



hmmm...

also wenn du alle haben willst, dann musst du wohl zeichweise vergleichen, ob es sich um eine ziffer handelt, wenn nicht schmeisst du es raus. ist nicht sonderlich elegant, aber was besseres fällt mir auch nicht ein...

deKeep
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
01.08.2005, 17:51 Uhr
~panconnutella
Gast


Hi,

eine Möglichkeit ist


C++:

CString sNumbersOnly;

sNumbersOnly = myCString.SpanIncluding("0123456789");




Da müsstest du dann aber immer eine fixe Ziffernanzahl haben (außer bei den Tagen), also z.B. 0 d 00 h 00m 10s 953ms, sonst kannst ja im Anschluss nicht 100%ig sicher auswerten.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
01.08.2005, 17:51 Uhr
~Blubb
Gast


Ist auch die eMnzige möglichkeit sowas zu lösen.

Gehe Zeichenweise vor und alles was nicht zwischen hex 30 und hex 39 bzw dez 48 und dez 57 liegt rauswerfen

Könnte so aussehen


C++:

bool IsDigit(const char _cChar)
{
if(_cChar >= 30 && _cChar <= 39)
{
   return true;
}
else
{
   return false;
}
}

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
01.08.2005, 17:52 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


isdigit sagt dir obs ne ziffer ist oder nicht... wenn du "nur" ein datum parsen willst gibt es aber imho schon fertige funktionen die das für dich machen... weiss ich aber gerade nicht auswendig wie die heissen im zweifel mal doku lesen oder googlen... wenn du es doch von hand parsen willst kann dir eventuell auch sscanf helfen...
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
01.08.2005, 19:48 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


wenn es denn hexzahlen sein sollen dann auch ein 0x vorschreiben... sonst ist 30 != 48...
--
...fleißig wie zwei Weißbrote

Dieser Post wurde am 23.09.2005 um 19:27 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
02.08.2005, 16:39 Uhr
~AS
Gast


Hallo an alle

@~panconnutella


C++:
CString sNumbersOnly;

sNumbersOnly = myCString.SpanIncluding("0123456789");



Funktioniert nicht, da SpanIncluding beim ersten Zeichen abbricht, dass nicht zu "0123456789" gehört.

d.h
sNumbersOnly == "0"



mfg

AS
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
10.08.2005, 17:07 Uhr
~panconnutella
Gast


Aloha zusammen,

@AS: Ja, hast vollkommen Recht. Hab da in der Doku nicht exakt gelesen. Hatte bei meinem String immer ein numerisches Zeichen in Front und da hat es dann natürlich immer funktioniert. Danke für die Richtigstellung!

MFG

PCN
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
10.08.2005, 17:12 Uhr
~panconnutella
Gast


Oh je, ich glaub ich sollte weniger trinken ;-)

Natürlich hatte ich das numerische Zeichen in Front. Aber ich hatte auch bereits alle anderen Zeichen gelöscht und somit NUR MEHR numerische Zeichen (ich hatte konstante Längen, also war die Auswertung einfach). So, jetzt geh ich aber auf Entzug ;-)

MFG

PCN
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: