C语言 char* 切片

C语言

我首先定义了一个变量:

char* str1 = "123456789";

然后我想通过for循环,依次打印:

1 
12 
123 
1234 
12345  
123456 
1234567  
12345678 
123456789 

请问如何实现?
Python代码示例:

str1 = "123456789"

for i in range(9):
    print(str[:i])

是否想实现这样的效果:

#include <stdio.h>
#include <string.h>
int main()
{
    char* str = "123456789" , s[10]={0};
    int  i, len = strlen(str);
    for (i = 0; i < len; i++)
    {
        strncpy(s,str,i+1);
        printf("%s\n",s);
    }
    return 0;
}


#include <stdio.h>
#include <string.h>
int main()
{   char* str1 = "123456789";
    for(int i = 0; i < strlen(str1); i ++) {
        for(int j = 0; j <= i; j ++)
            printf("%c", str1[j]);
        puts("");
    }
    return 0;
}

img