#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>

// input-string, input-string-size
i=-1,j,s=1,x;C(char*n){while(n[++i])s+=isdigit(n[i])?n[i]*2+1:2;char*m=(char*)malloc(s);for(i=j=-1;n[++i]&(m[++j]='|');)if(n[i]=='/')m[++j]='\n';else if(isdigit(n[i]))for(x=n[i]-'0';x;--x&&(m[++j]='|'))m[++j]=' ';else m[++j]=n[i];m[++j]='\0';return m;}

// input-string, input-string-size
char* C2(char*n)
{
    int i=-1,j,s=1,x;
    while(n[++i])s+=isdigit(n[i])?n[i]*2+1:2;
    char*m=(char*)malloc(s);
    
    i=j=-1;
    while(n[++i])
	{
		m[++j]='|';
		
		if (n[i]=='/')
			m[++j]='\n';
		else if (isdigit(n[i]))
			for(x=n[i]-'0';x;--x&&(m[++j]='|')) m[++j]=' ';
		else
			m[++j]=n[i];
	}

    m[++j]='|';
    m[++j]='\0';
    return m;
}

int main(void)
{
	// tests
	printf("\n---------------------------\n");
	printf(C("8/8/8/8/8/8/8/8"));
	printf("\n---------------------------\n");
	printf(C("rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR"));
	printf("\n---------------------------\n");
	printf(C("r1bk3r/p2pBpNp/n4n2/1p1NP2P/6P1/3P4/P1P1K3/q5b1"));
	printf("\n---------------------------\n");
	
	return 0;
}
