コード例 #1
0
ファイル: modifiers.c プロジェクト: MickaelBlet/42_Fractol
static t_bool	s_modifiers_1(char **s)
{
	if (ft_strnstr(*s, "hh", 2))
	{
		++s;
		sgt_printf()->flags.is_short = false;
		sgt_printf()->flags.is_char = true;
		return (true);
	}
	if (**s == 'h')
	{
		sgt_printf()->flags.is_short = true;
		return (true);
	}
	if (ft_strnstr(*s, "ll", 2))
	{
		++(*s);
		sgt_printf()->flags.is_long_double = true;
		sgt_printf()->flags.is_long = true;
		return (true);
	}
	if (**s == 'l')
	{
		sgt_printf()->flags.is_long = true;
		return (true);
	}
	return (false);
}
コード例 #2
0
ファイル: color_fg_bg.c プロジェクト: MickaelBlet/42_Lemin
void		color_fg_bg(t_replace_color co)
{
	int		j;

	if (ft_strnstr(co.t->buffer + *(co.i), "{fg=", 4)
		&& (j = s_valid_option(co.t->buffer + *(co.i) + 4)))
	{
		*(co.tmp) = concat(*(co.tmp), co.len, co.t->buffer + *(co.save),
					*(co.i) - *(co.save));
		*(co.tmp) = concat(*(co.tmp), co.len, "\033[38;5;", 7);
		*(co.tmp) = concat(*(co.tmp), co.len, co.t->buffer + *(co.i) + 4, j);
		*(co.tmp) = concat(*(co.tmp), co.len, "m", 1);
		*(co.save) = *(co.i) + j + 5;
	}
	else if (ft_strnstr(co.t->buffer + *(co.i), "{bg=", 4)
		&& (j = s_valid_option(co.t->buffer + *(co.i) + 4)))
	{
		*(co.tmp) = concat(*(co.tmp), co.len, co.t->buffer + *(co.save),
					*(co.i) - *(co.save));
		*(co.tmp) = concat(*(co.tmp), co.len, "\033[48;5;", 7);
		*(co.tmp) = concat(*(co.tmp), co.len, co.t->buffer + *(co.i) + 4, j);
		*(co.tmp) = concat(*(co.tmp), co.len, "m", 1);
		*(co.save) = *(co.i) + j + 5;
	}
	*(co.i) = (*(co.save) > *(co.i)) ? *(co.save) - 1 : *(co.i);
}
コード例 #3
0
ファイル: test_str.c プロジェクト: MrTraan/libft_tests
void	test_strnstr(void)
{
	char	*str = "Cherchez moi cherchez moi moi moi";

	printf("\nTesting ft_strnstr\n");
	printf("%-20s %-10s %-10s %-5s\n%-20s %-10s %-10s %-5s\n",
			"Expected result:", strnstr(str, "moi", 40), strnstr(str, "Chercht", 5),
				strnstr(str, "moi", 0), "Actual result:", ft_strnstr(str, "moi", 40),
					ft_strnstr(str, "Chercht",  5), ft_strnstr(str, "moi", 0));
}
コード例 #4
0
ファイル: ft_strnstr.c プロジェクト: MRdotB/get_next_line
char	*ft_strnstr(const char *haystack, const char *needle, size_t n)
{
	if (!(*needle))
		return ((char *)haystack);
	if (!(*haystack) || n == 0)
		return (NULL);
	if (*haystack == *needle)
		if (ft_strnstr(haystack + 1, needle + 1, n - 1) - 1 == haystack)
			return ((char *)haystack);
	return (ft_strnstr(haystack + 1, needle, n - 1));
}
コード例 #5
0
ファイル: get_symbols_letters.c プロジェクト: aeddi/nmotool
static char	match_not_s_letter_sect(char *sect_name)
{
	if (ft_strnstr(sect_name, "__text", 6)
			|| ft_strnstr(sect_name, "__os_", 5))
		return ('T');
	else if (ft_strnstr(sect_name, "__bss", 5))
		return ('B');
	else if (ft_strnstr(sect_name, "__data", 6))
		return ('D');
	return (' ');
}
コード例 #6
0
static void unittest2(t_test *test)
{
	char	buf[11];

	bzero(buf, 11);
	strcpy(buf, "un deux 9");
	buf[9] = '6';
	mt_assert(strcmp(ft_strnstr(buf, "deux", 10), "deux 96") == 0);
	mt_assert(ft_strnstr(buf, "cinq", 10) == NULL);
	mt_assert(ft_strnstr(buf, "9682", 10) == NULL);
	mt_assert(strcmp(ft_strnstr(buf, "6", 10), "6") == 0);
}
コード例 #7
0
ファイル: ft_strnstr.c プロジェクト: PulsarFox/newfillit
char	*ft_strnstr(const char *s1, const char *s2, size_t n)
{
	if (!(*s2))
		return ((char *)s1);
	if (!(*s1) || n == 0)
		return (NULL);
	if (*s1 == *s2)
	{
		if (ft_strnstr(s1 + 1, s2 + 1, n - 1) - 1 == s1)
			return ((char *)s1);
	}
	return (ft_strnstr(s1 + 1, s2, n - 1));
}
コード例 #8
0
ファイル: ft_strstr.c プロジェクト: aiwanesk/Rendu-42
char		*ft_strstr(const char *s1, const char *s2)
{
	size_t	i;

	i = ft_strlen(s1);
	return (ft_strnstr(s1, s2, i));
}
コード例 #9
0
ファイル: history_search2.c プロジェクト: mdugot/42sh
char		*search_first_occurence_hist(t_hist *hist, char *chr, int mode)
{
	size_t	chr_len;

	if (hist)
	{
		hist = hist->next;
		if (chr)
		{
			chr_len = ft_strlen(chr);
			while (hist)
			{
				if (mode == 1)
				{
					if (ft_strnstr(hist->line, chr, chr_len))
						return (hist->line);
				}
				else if (mode == 2)
				{
					if (ft_strstr(hist->line, chr))
						return (hist->line);
				}
				hist = hist->next;
			}
		}
	}
	return (NULL);
}
コード例 #10
0
ファイル: ft_strstr.c プロジェクト: Arubinu/alum1
char	*ft_strstr(const char *s1, const char *s2)
{
	size_t	len;

	len = ft_strlen(s1);
	return (ft_strnstr(s1, s2, len + 1));
}
コード例 #11
0
ファイル: ft_strstr.c プロジェクト: jbrozzu/Fractol
char	*ft_strstr(const char *haystack, const char *needle)
{
	size_t	i;

	i = ft_strlen(haystack);
	return (ft_strnstr(haystack, needle, i));
}
コード例 #12
0
static void unittest3(t_test *test)
{
	char	buf[10];

	bzero(buf, 10);
	strcpy(buf, "un deux 9");
	buf[9] = '6';
	buf[1] = 0;
	mt_assert(ft_strnstr(buf, "deux", 10) == 0);
}
コード例 #13
0
ファイル: ft_strnstr.c プロジェクト: dyarob/42_projects
char					*ft_strnstr(const char *s1, const char *s2, size_t n)
{
	size_t				size_s2;

	if (!*s2)
		return ((char *)s1);
	size_s2 = ft_strlen(s2);
	if (!*s1 || n < size_s2)
		return (NULL);
	if (*s1 == *s2 && !ft_strncmp(s1, s2, size_s2))
		return ((char *)s1);
	return (ft_strnstr(++s1, s2, n - 1));
}
コード例 #14
0
ファイル: main.c プロジェクト: overedge/minishell
char		*get_env(char **env)
{
	int		i;

	i = 0;
	while (env[i])
	{
		if (ft_strnstr(env[i], "PATH=", 5) != NULL)
			return (ft_strdup(ft_strsplit(env[i], '=')[1]));
		i++;
	}
	return ("");
}
コード例 #15
0
ファイル: env.c プロジェクト: JeremShy/21sh
static int			var_exist(char **env, char *check)
{
	int	i;

	i = 0;
	while (env && env[i])
	{
		if (ft_strnstr(env[i], check, ft_strlen(check)))
			return (1);
		i++;
	}
	return (0);
}
コード例 #16
0
static void unittest1(t_test *test)
{
	char	buf[10];

	bzero(buf, 10);
	strcpy(buf, "un deux 9");
	mt_assert(strcmp(ft_strnstr(buf, "deux", 10), "deux 9") == 0);
	mt_assert(ft_strnstr(buf, "9", 3) == NULL);
	mt_assert(strcmp(ft_strnstr(buf, "", 6), buf) == 0);
	mt_assert(ft_strnstr(buf, "deux", 5) == NULL);
	mt_assert(strcmp(ft_strnstr(buf, "9", 10), "9") == 0);
	mt_assert(ft_strnstr(buf, "9", 8) == NULL);
}
コード例 #17
0
ファイル: ft_strnstr.c プロジェクト: skyformat99/ftp-1
char	*ft_strnstr(char *str, char *to_find, size_t n)
{
	size_t	i;

	if (to_find[0] == '\0')
		return (str);
	if (str == '\0' || n < 1)
		return (NULL);
	i = 0;
	while (i < n && to_find[i] == str[i] && str[i] != '\0')
	{
		i++;
		if (to_find[i] == '\0')
			return (str);
	}
	if (str[i] == '\0' || i == n)
		return (NULL);
	return (ft_strnstr(str + 1, to_find, n - 1));
}
コード例 #18
0
ファイル: client.c プロジェクト: Infornia/Ftp
void					do_it(t_truck *b, int sock)
{
	while ((b->i = read(0, b->line, 2048)) > 0)
	{
		b->line[b->i] = '\0';
		ft_send(sock, 0, b->line, ft_strlen(b->line));
		if ((ft_strnstr(b->line, "quit", 4)) != NULL)
			break ;
		b->r = c_trans(b, sock);
		if (b->r == 0)
		{
			ft_recv(sock, &b->buff);
			printf("%s\n", b->buff);
		}
		ft_strdel(&b->buff);
		ft_bzero(b->line, 2048);
		write(1, "client$$$:", 10);
	}
	return ;
}
コード例 #19
0
ファイル: ft_strnstr.c プロジェクト: chinspp/42
char	*ft_strnstr(const char *s1, const char *s2, size_t n)
{
	size_t	count_s2;
	size_t	count_s1;

	count_s2 = 0;
	count_s1 = 0;
	while (*(s1 + count_s1) && n)
	{
		if (count_s2 == ft_strlen(s2))
			return ((char *)(s1));
		if (*(s1 + count_s1) != *(s2 + count_s2))
			return (ft_strnstr(s1 + count_s1 + 1, s2, --n));
		count_s2++;
		count_s1++;
		n--;
	}
	if (count_s2 == ft_strlen(s2))
		return ((char *)(s1));
	return (NULL);
}
コード例 #20
0
ファイル: ft_strnstr.c プロジェクト: lgarczyn/fdf
char		*ft_strnstr(const char *s1, const char *s2, size_t n)
{
	size_t	i;
	char	*result;

	if (!s1 || !s2)
		return (NULL);
	if (s2[0] == '\0')
		return ((char*)s1);
	if (!s1[0] || !n)
		return (NULL);
	i = 0;
	while ((s1[i] || !s2[i]) && i <= n)
		if (s2[i] == '\0')
			return ((char*)s1);
		else if (s1[i] == s2[i])
			i++;
		else
			break ;
	result = ft_strnstr(s1 + 1, s2, n - 1);
	return (result);
}
コード例 #21
0
ファイル: client.c プロジェクト: Infornia/Ftp
int						create_client(char *addr, int port)
{
	int					sock;
	struct protoent		*proto;
	struct sockaddr_in	sin;

	proto = getprotobyname("tcp");
	if (proto == 0)
		return (-1);
	sock = socket(PF_INET, SOCK_STREAM, proto->p_proto);
	sin.sin_family = AF_INET;
	sin.sin_port = htons(port);
	if (ft_strnstr(addr, "Localhost", 9) != NULL)
		sin.sin_addr.s_addr = inet_addr("127.0.0.1");
	else
		sin.sin_addr.s_addr = inet_addr(addr);
	if (connect(sock, (const struct sockaddr *)&sin, sizeof(sin)) == -1)
	{
		ft_putstr("Connect error\n");
		exit(2);
	}
	return (sock);
}
コード例 #22
0
ファイル: ft_strstr.c プロジェクト: laurentiupop/my-projects
char	*ft_strstr(const char *s1, const char *s2)
{
	return (ft_strnstr(s1, s2, ft_strlen(s1)));
}
コード例 #23
0
ファイル: get_symbols_letters.c プロジェクト: aeddi/nmotool
static char	match_letter_sect(char *sect_name)
{
	if (ft_strnstr(sect_name, "__const", 7)
			|| ft_strnstr(sect_name, "__gcc_except_tab", 16)
			|| ft_strnstr(sect_name, "__ustring", 9)
			|| ft_strnstr(sect_name, "__cstring", 9)
			|| ft_strnstr(sect_name, "__interpose", 11)
			|| ft_strnstr(sect_name, "__crash_info", 12)
			|| ft_strnstr(sect_name, "__objc_", 7)
			|| ft_strnstr(sect_name, "__xcrun_shim", 12)
			|| ft_strnstr(sect_name, "__common", 8)
			|| ft_strnstr(sect_name, "__dyld", 6)
			|| ft_strnstr(sect_name, "__class", 7)
			|| ft_strnstr(sect_name, "__eh_frame", 10)
			|| ft_strnstr(sect_name, "__program_vars", 14)
			|| ft_strnstr(sect_name, "__all_image_info", 16)
			|| ft_strnstr(sect_name, "__textcoal_nt", 13)
			|| ft_strnstr(sect_name, "__os_activity", 13)
			|| ft_strnstr(sect_name, "__os_log", 8)
			|| ft_strnstr(sect_name, "__os_trace", 10))
		return ('S');
	else
		return (match_not_s_letter_sect(sect_name));
}
コード例 #24
0
static void unittest4(t_test *test)
{
	char	buf2[] = "ozarabozaraboze123";

	mt_assert(strcmp(ft_strnstr(buf2, "ozaraboze", 15), "ozaraboze123") == 0);
}
コード例 #25
0
ファイル: ft_strstr.c プロジェクト: JeanMax/fillit
char			*ft_strstr(const char *str, const char *to_find)
{
	return (ft_strnstr(str, to_find, ft_strlen(str)));
}