c语言关于函数连接的问题

img


#include <stdio.h>
#include <string.h>
void shift (char *str) {
    // TODO 请在此处编写代码,完成题目要求
    char qian[3],hou[100];
    int i;
    for(i=0;str[i]!='\0';i++)
    {
        if(i>=3)
            hou[i-3]=str[i];
        else
            qian[i]=str[i];
    }
    strcat(hou,qian);
    *str=*hou;
}

int main () {
    char str[100] = "I am a student. I like programming.";
    shift(str);
    printf("%s", str);
    return 0;
}

我不知道怎么改

 char qian[3],hou[100];
    int i;
    for(i=0;str[i]!='\0';i++)
    {
        if(i>=3)
            hou[i-3]=str[i];
        else
            qian[i]=str[i];
    }
    strcat(hou,qian);
    *str=*hou;

才能输出“m a student. I like programming.I a”
求指点


 
#include <stdio.h>
#include <string.h>
void shift (char *str) {
    // TODO 请在此处编写代码,完成题目要求
    char qian[4],hou[100];
    int i;
    for(i=0;str[i]!='\0';i++)
    {
        if(i>=3)
            hou[i-3]=str[i];
        else
            qian[i]=str[i];
    }
    qian[3]='\0';
    hou[i-3]='\0';
    strcat(hou,qian);
    for(i=0;hou[i]!='\0';i++)
    {
        str[i]=hou[i];
    }
    str[i]='\0';
}
int main () {
    char str[100] = "I am a student. I like programming.";
    shift(str);
    printf("%s", str);
    return 0;
}