I tried to write a function that inserts space at regular intervals in a string. If a[50] is a string, and n is the preferred interval from the user, insert_space(a,b,len,n) will insert blanks after the n'th column and will store the modified string in b.
#include <stdio.h>
int getinput(char temp[]);
void insert_space(char s1[],char s2[],int,int);
int main ()
{
    int n, len;
    char a[100], b[100];
    printf("Enter the nth column number for inserting\n");
    scanf("%d",&n);
    printf("Enter the line\n");
    len=getinput(a);
    insert_space(a,b,len,n);
    printf("%s\n",b);
}
void insert_space(char s1[],char s2[],int len, int n)
{
    int i=0, c=0,flag=0;
    for(i=0;i<=len;i++)
    {  
        if(flag!=n)
        {
            s2[c]=s1[i];
            c++;
            flag++;
        }
        else
        {
            s2[c]=' ';
            i=i-1;
            c++;
            flag=0;
        }          
    }
    s2[c]='\0';
}
int getinput(char temp[])
{
    int c, i=0;
while((c=getchar())!=EOF)
    {
        temp[i]=c;
        i++;
    }
    i--;
    temp[i]='\0';
    return i;
}
I entered the values of the string a as abcdefghijkmnop. Instead of "abdce fghij kmnop" as the ouput in b, I got "abcd efghi jkmno p" as the output. I'm not sure what I did wrong here. edit: After just including the insert_function code, I've edited it to include the entire execution code.
 
     
    