+1 \0.
char color1[3];
char color2[5];
:
strncpy(color1, string, 2);
color1[3] = '\0';
strncpy(color2, string + 2, 4);
color2[4] = '\0';
,
char *string = "AAbbCC";
printf("color1 => %s\ncolor2 => %s\n", color1, color2);
:
color1 => AA
color2 => bbCC
, .
UPDATE
substr(), ( x y), .
char * substr(char * s, int x, int y)
{
char * ret = malloc(strlen(s) + 1);
char * p = ret;
char * q = &s[x];
assert(ret != NULL);
while(x < y)
{
*p++ = *q++;
x ++;
}
*p++ = '\0';
return ret;
}
:
char *string = "AAbbCC";
char color1[3];
char color2[4];
char color3[5];
char *c1 = substr(string,0,2);
char *c2 = substr(string,2,4);
char *c3 = substr(string,4,6);
strcpy(color1, c1);
strcpy(color2, c2);
strcpy(color3, c3);
printf("color1 => %s, color2 => %s, color3 => %s\n", color1, color2, color3);
:
color1 => AA, color2 => bb, color3 => CC
:
free(c1);
free(c2);
free(c3);