Stringinhalt zählen
-
Hiho Leute,
also ich dreh gleich ab...
Ich habe einen String.z.B.: "aafffgghhhhhiiiooowe"
Nun möchte ich den String durchgucken, und immer schauen wieviele gleich elemente aufeinanderfolgen und das notieren...
aa = 2
fff = 3
gg = 2
hhhhh = 5
iii = 3
ooo = 3
w = 1
e = 1schlussendlich habe ich dann als ergebniss : 23253311
Ich hab nun schon ein paar anläufe hintermir, auch welche mit teilerfolg.
aber noch nicht DIE Lösung gefunden.
Hab vorher auf ner do / while schleife aufgebaut, haut aber wie gesagt nicht ganz hin. Mein Versuch haut hin, wenn ich ihm vorher expliziet sag bis wo er suchen soll (sprich in diesem bespeil zum w) das muss ja aber variabel sein.
Kann mir jemand helfen??Ich hab mich denk ich verrannt..
dankeAch ja, ich will nicht wissen wieviele vom selben typ INSGESAMT drin sind, sondern immer nur wieviel aufeinander folgen, nur noch als info
[ Dieser Beitrag wurde am 27.03.2003 um 14:04 Uhr von C-O-M-M-A-N-D-E-R editiert. ]
-
strlen() gibt die Länge eines Strings zurück...
-
CString search(_T("aafffgghhhhhiiiooowe")); int lpos = 0; for(int i = 1; i < search.GetLength(); ++i) { if(search[lPos] != search[i]) { // (i - lPos) mal (search[lPos]) lPos = i; } } // (i - lPos) mal (search[lPos])
-
CString s = _T("aafffgghhhhhiiiooowe"); CString t = s[0]; int n[100]; n[0]++; int x = 0; for(int i = 1; i < s.GetLength(); i++) { if(s[i] == t) n[x]++; else { x++; n[x]++; t = s[i]; } }
Kann man sicherlich noch stark optimieren, aber dürfte auch so funktionieren. Keine Ahnung.
Happosai
-
@Hepi : ehh ich benutze da für gewöhnlich GetLength();
nix für ungut...
den anderen beiden danke, werds mal testen
-
@Happosai
Was soll das increment auf dem uninitialisierten n[x]???
-
Hab das Problem heute selber gelöst...
Danke für eure Hilfe, hab nen etwas anderen weg gewählt, und werd es bei gelegenheit hier posten...sitz noch in der schule und werd mich hier nicht einloggen...danke
-
Sowas kann man sich in den Fachforen sparen...
[ Dieser Beitrag wurde am 29.03.2003 um 16:22 Uhr von C-O-M-M-A-N-D-E-R editiert. ]
-
Original erstellt von MaSTaH:
@Happosai
Was soll das increment auf dem uninitialisierten n[x]???So besser?:
for(int i = 1; i < s.GetLength(); i++) { if(s[i] == t) n[x]++; else { x++; n[x] = 1; t = s[i]; } }
MfG
Happosai
-
@C-O-M@Bordell FAKER: Ich war wirklich C-O-M@school...wenn du es nicht glaubst ist es dein Problem und kannst dir solche Einträge sparen....
Ist nämlich nicht wirklich lustig..
-
Reg dich doch nicht auf. War wohl wieder einer der Langeweile hatte