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 😉 😉 😉


Anmelden zum Antworten