string 数组C重新分配问题


#include <stdio.h>
#include <string.h>
int main(){
    char array2 []="abcdefaabbcc";
    char * array1[6]; 
    char str[2];
    for(int i = 0;i < 12;i++){ 
        for(int j = 0;j < 2;j++){
            str[j] = array2[i];
            printf("str[%d]------>%c\n",j,str[j]);
            i++;
        }
        i--;
        array1[i/2] = str;
        printf("array1[%d]--------------->%s\n",i/2,array1[i/2]);
    }
    
    for(int i = 0;i < 6;i++){
   
        printf("%s\n",array1[i]);
    }
}

C语言怎么把array2中的字符串两两一组储存在array1中?

#include <stdio.h>
#include <string.h>
int main(){
char array2 []="abcdefaabbcc";
char * array1[6];
char str[2];
Int num=0;
for(int i = 0;i < 12;i+=2){
for(int j = i ;j < i+2;j++){
str[j] = array2[j];
printf("str[%d]------>%c\n",j,str[j]);
}
array1[num++] = str;
printf("array1[%d]--------------->%s\n",i/2,array1[i/2]);
}
//array1 预期是 char *array1[6] = {"ab","cd","ef","aa","bb","c"}
for(int i = 0;i < 6;i++){
//printf("%s\n",trailer_check[i]);
printf("%s\n",array1[i]);
}
}


#include <stdio.h>
int main() {
    char array2[] = "abcdefaabbcc";
    char array1[6][3] = {0};
    int i, j=0;
    for (i = 0; i < 12; i++)
    {
        printf("array1[%d][%d]--------------->%c\n", i / 2, j, array2[i]);
        array1[i / 2][j++] = array2[i];
        if (j > 1)
        {
            printf("array1[%d]--------------->%s\n", i / 2, array1[i / 2]);
            j = 0;
        }
    }
    for (int i = 0; i < 6; i++)
        printf("%s\n", array1[i]);
    return 0;
}

 
#include <stdio.h>
#include <string.h>
int main(){
    char array2 []="abcdefaabbcc";
    char * array1[6]; 
    char str[2];
    for(int i = 0;i < 12;i++){ 
        for(int j = 0;j < 2;j++){
            str[j] = array2[j];
            printf("str[%d]------>%c\n",j,str[j]);
            i++;
        }
        i--;
        array1[i/2] = str;
        printf("array1[%d]--------------->%s\n",i/2,array1[i/2]);
    }
    //array1 预期是 char *array1[6] = {"ab","cd","ef","aa","bb","c"}
    for(int i = 0;i < 6;i++){
   
        printf("%s\n",array1[i]);
    }
}

#include <stdio.h>
#include <string.h>

int main()
{
    char array2[] = "abcdefaabbcc";
    char array1[6][3] = {0};
    int i = 0;
    const char *p = array2;
    char *q = &array1[0][0];
    while (*p)
    {
        *q++ = *p++;
        i++;
        if (i > 0 && i % 2 == 0)
            q++;
    }
    for (int i = 0; i < 6; i++)
        printf("%s\n", array1[i]);
    return 0;
}