/* ************************************************************************** */
/*                                                                            */
/*                                                        :::      ::::::::   */
/*   ft-strcapitalize.c                                 :+:      :+:    :+:   */
/*                                                    +:+ +:+         +:+     */
/*   By: jayang <[email protected]>                      +#+  +:+       +#+        */
/*                                                +#+#+#+#+#+   +#+           */
/*   Created: 2022/02/06 13:29:35 by jayang            #+#    #+#             */
/*   Updated: 2022/02/07 13:24:37 by jayang           ###   ########.fr       */
/*                                                                            */
/* ************************************************************************** */

#include <unistd.h>

int	check_special(char c)
{
	if (' ' <= c && c <= '/')
		return (1);
	if (':' <= c && c <= '@')
		return (1);
	if ('[' <= c && c <= '\\'')
		return (1);
	if ('{' <= c && c <= '}')
		return (1);
	return (0);
}

char	*ft_strcapitalize(char *str)
{
	int i;
	int check;

	i = 0;
	check = 1;
	while (str[i])
	{
		if (check && ('a' <= str[i] && str[i] <= 'z'))
			str[i] -= 32;
		else if ((check == 0) && ('A' <= str[i] && str[i] <= 'Z'))
			str[i] += 32;
		check = 0;
		if (check_special(str[i]))
			check = 1;
		i++;
	}
	return (str);
}