Ich möchte Strings aufteilen weiß aber nicht wie

Ich habe das Problem, das ich eine Eingabe erhalte die aus einem Wort und einer Zahl besteht. Die Eingabe sieht wie folgt aus:
mmmjj d.h. jan05 = Januar 2005 ; feb88 = Februar 2088 usw.

Ich möchte jetzt diese eingabe aufteilen in 2 Strings weiß aber nicht genau wie…
Kann mir da jemad helfen??

Wie sieht Deine konkrete Eingabe aus? So:

"jan05 = Januar 2005 ; feb88 = Februar 2088"

oder so:

 "jan05 = Januar 2005" 
 "feb88 = Februar 2088" ...

oder noch anders?

Ist es eine Formateingabe mit festem Format (Leerzeichen
müssen da sein, sonstige Zeichen zwingend) oder mit
freiem Format (mehrere Eingabeweisen möglich)?

Grüße

CMБ

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Wie sieht Deine konkrete Eingabe aus? So:

„jan05 = Januar
2005 ; feb88 = Februar 2088“

oder so:

„jan05 =
Januar 2005“
„feb88 = Februar 2088“ …

oder noch
anders?

Ist es eine Formateingabe mit festem Format (Leerzeichen
müssen da sein, sonstige Zeichen zwingend) oder mit
freiem Format (mehrere Eingabeweisen möglich)?

Grüße

CMБ

Ja das habe ich etwas schlecht ausgedrückt…
Ich habe eine Stringeingabe in dieses Format: jan05
Diesen String will ich jetzt aufteilen in „jan“ also Monat und
in „05“ (Jahr)!
Ich hoffe das ist jetzt deutlicher!!

MfG

Jörg

Hi,

Ich habe eine Stringeingabe in dieses Format: jan05
Diesen String will ich jetzt aufteilen in „jan“ also Monat und
in „05“ (Jahr)!

so etwa?

#define LANG 64

 const char inputstring[] = "jan05";
 const char\*pinput = inputstring;

 char monat[LANG], jahr[LANG];
 char \*pmonat=monat, \*pjahr=jahr;

 while( \*pinput && !isdigit(\*pinput) ) \*pmonat++ = \*pinput++;
 while( \*pinput && isdigit(\*pinput) ) \*pjahr++ = \*pinput++;

 \*pmonat ='\0'; \*pjahr='\0'; /\* string abschliessen \*/

{
 int nMonat = suche\_monat\_in\_tabelle(monat);
 int nJahr = atoi(jahr); 
 ...
}

Hallo,

vielleicht is meine Lösung kürzer … ich poste mal :smile:

char* eingabe = „jan05“;

char monat[100];
memset(monat, 0, sizeof(char)*100);
int jahr = 2000;

for(int i=0; i

Okay Danke!!!
Das biringt mich weiter!!