Zeichen in String einfügen
-
Hi,
ich habe den String 174925 und möchte daraus folgenden String machen:
17:49:25
Ich bekomme es aber einfach nicht hin. Gibt es dazu eine Funktion, die ich benutzen könnte?Danke
-
#include <stdio.h> #include <string.h> int main() { char *in = "174925"; char out[9]; sprintf(out, "%c%c:%c%c:%c%c", in[0], in[1], in[2], in[3], in[4], in[5]); printf("%s\n%s\n", in, out); return 0; }
-
Du weisst, dass dein printf so schöner aussieht:
printf("%.2s:%.2s:%.2s\n", in, in+2, in+4);
(Nahezu) maximale Geschwindigkeit bekommst du mit
int i; char *c=in; for (i=0; *c; ++i) out[i] = i%3==2?':':*c++; out[i]='\0';
-
Perfekt.
Ich wusste, dass ich den String in die einzelnen Chars aufteilen muss, aber nicht wie.Danke für die schnelle Antwort.
-
void TimeNumToTimeStr(char *pNumStr,char *pTimeStr) { int i=1; if(pNumStr && pTimeStr) { while(*pNumSTr && *pTimeStr) { *pTimeStr++ = *pNumStr++; if(*pNumStr && !(i%2)) *pTimeStr++ = ':'; ++i; } *pTimeStr = '\0'; } }
Funktioniert garantiert...hab's ausprobiert. pTimeStr = dann der formatierte String. der Puffer für pTimeStr muß groß genug sein...
-
Wow...spiritus...bist ja auch son' Künstler...während dem Schreiben der Funktion u DSDS schauen, hab ich Deine Lösung janz überlesen...respekt
Ohh, man, jetzt merke ich erst wie peinlich...ich habe mich als DSDS-Fan entlarvt...Nunja...ich liebe Zombies