kopieren von Zeichen aus einer Zeichenfolge in einer anderen Zeichenfolge in C

Ich habe einen string AAbbCC, was ich brauchen, ist das kopieren die ersten beiden, und fügen Sie Sie in ein array kopieren Sie dann die zwei mittleren und fügen Sie Sie in ein array und schließlich die letzten zwei, und fügen Sie Sie in ein array.

dies ist, was ich Tue:

char color1[2];
char color2[2];
char color3[2];

strncpy(color1, string, 2); //I take the first two characters and put them into color1

//now I truncate the string to remove those AA values:

string = strtok(string, &color1[1]);

//and when using the same code again the result in color2 is bbAA:

strncpy(color2, string, 2); 

es gibt diese bb aber auch AA aus vorherigen .. obwohl das array hat nur zwei stellen, wenn ich mit strtol auf, dass es mich gibt einige großen Wert und nicht 187 die ich Suche .. wie Sie es loswerden ? oder, wie es funktionieren auf andere Weise? Jede Beratung wäre geschätzt.

char * - strings sind null-terminiert. Wenn Sie verwenden möchten colorX in Ihrem code als strings (die ich nehme an, Sie tun, wenn die Konvertierung 0xbb 187), die Sie benötigen, um Sie zu verlängern, indem ein byte Anzeige eingestellt dieses byte auf 0.
Wenn Sie nur wollen, überspringen 2 chars, warum gehst du nicht einfach etwas tun, wie strncpy(color2, string+2, 2); color2[2] = '\0' etc?
ja danke Euch beiden .. ich habe es herausgefunden 🙂 und @Anthales danke für den Hinweis hin, dass ich nicht brauchen, strtok überhaupt
Sie erwähnen, dass Sie suchen, 187, aber das ist nicht deutlich aus dem rest der Frage. Warum nutzen Sie nicht strtoul auf der größeren Zeichenfolge statt schneiden Sie es in Stücke zuerst?
eigentlich war ich auf der Suche für ein tool, schneiden Sie die Farbe vertreten durch hexadezimal-Werte in 3 verschiedene Werte, dann werde ich umwandeln in decimal Werte (RGB), aber ich bekam schon, dass mit dem hinzufügen von ein Platz für '\0' in mein array 🙂

InformationsquelleAutor Markus | 2012-04-29

Schreibe einen Kommentar