Пример #1
0
char		*ft_strtrim(char const *s)
{
	unsigned int		i;
	int					count;
	char				*dst;
	unsigned int		size;

	if (s && *s != '\0')
	{
		count = count_blank(s);
		size = ft_strlen(s);
		if (count == (int)size)
			return ("");
		if ((dst = (char*)malloc(sizeof(char) * (size - count + 1))) == NULL)
			return (NULL);
		i = first_pos(s);
		size = size - count + first_pos(s);
		while (i < size)
		{
			dst[i - first_pos(s)] = s[i];
			i++;
		}
		dst[i - first_pos(s)] = '\0';
		return (dst);
	}
	return ("");
}
Пример #2
0
void moveOn(void){
    count_blank();
    int i;
    int ni;
    int offset;
    if(direction==0){
        for(i=0;i<r;i++){
            if(ch[i][c]=='.'){
                continue;
            }
            offset=step-blank[i];
            if(offset<=0){
                continue;
            }
            ni=i-offset;
            if(ni<0){
                continue;
            }
            ch[ni][c]=ch[i][c];
        }
        ni=r-step;
        ni=ni<0?0:ni;
        for(i=r;i>ni;i--){
            ch[i][c]='.';
        }
        ch[r][c]='.';
        ch[ni][c]='^';
        r=ni;
        return;
    }
    if(direction==2){
        for(i=7;i>r;i--){
            if(ch[i][c]=='.'){
                continue;
            }
            offset=step-blank[i];
            if(offset<=0){
                continue;
            }
            ni=i+offset;
            if(ni>7){
                continue;
            }
            ch[ni][c]=ch[i][c];
        }
        ni=r+step;
        ni=ni>7?7:ni;
        for(i=r;i<ni;i++){
            ch[i][c]='.';
        }
        ch[r][c]='.';
        ch[ni][c]='v';
        r=ni;
        return;
    }
    if(direction==1){
        for(i=7;i>c;i--){
            if(ch[r][i]=='.'){
                continue;
            }
            offset=step-blank[i];
            if(offset<=0){
                continue;
            }
            ni=i+offset;
            if(ni>7){
                continue;
            }
            ch[r][ni]=ch[r][i];
        }
        ni=c+step;
        ni=ni>7?7:ni;
        for(i=c;i<ni;i++){
            ch[r][i]='.';
        }
        ch[r][c]='.';
        ch[r][ni]='>';
        c=ni;
        return;
    }
    if(direction==3){
        for(i=0;i<c;i++){
            if(ch[r][i]=='.'){
                continue;
            }
            offset=step-blank[i];
            if(offset<=0){
                continue;
            }
            ni=i-offset;
            if(ni<0){
                continue;
            }
            ch[r][ni]=ch[r][i];
        }
        ni=c-step;
        ni=ni<0?0:ni;
        for(i=c;i>ni;i--){
            ch[r][i]='.';
        }
        ch[r][c]='.';
        ch[r][ni]='<';
        c=ni;
        return;
    }
}