示例#1
0
文件: testmy.c 项目: jcmisrael/cs392
void testMY_REVSTR(void){
    char* str = NULL;
    str = my_strdup("testing");


    if(temp_file != NULL){
        CU_ASSERT(my_revstr(str) == 7);
        CU_ASSERT_STRING_EQUAL(str, "gnitset");
        CU_ASSERT(my_revstr(NULL) == -1);
    }
}
示例#2
0
文件: mytest.c 项目: Kooshaba/cs392
void test_my_revstr()
{
    my_str("Begin my_revstr \n");
    char str[] = "hey!";
    my_str(str);
    char str1[] = "hello";
    my_revstr(str);
    my_str(str);
    my_char('\n');
    my_revstr(str1);
    my_str(str1);
    my_char('\n');

}
示例#3
0
/*
**  fonction principale
 */
char	*soustraction(char *base, char *operators, char *expr1, char *expr2)
{
  if (is_sup(base, expr1, expr2))
    {
      my_revstr(expr1);
      my_revstr(expr2);
      return (sub(base, operators, expr1, expr2, 0));
    }
  else
    {
      my_revstr(expr1);
      my_revstr(expr2);
      return (sub(base, operators, expr2, expr1, 1));
    }
} 
示例#4
0
int		put_convert_to_nbase(unsigned int nbr, int base, char b)
{
  unsigned int	quo;
  char		*result;
  int		j;

  j = 0;
  result = malloc(my_nbrlen(nbr) * 3 + 2);
  if (result == NULL)
    return (0);
  while (nbr > 0)
    {
      quo = nbr / base;
      while (nbr >= base)
	nbr = nbr - base;
      if (nbr > 9 && b == 0)
	nbr = nbr + 7;
      if (nbr > 9 && b == 1)
	nbr = nbr + 39;
      result[j] = nbr + '0';
      j++;
      nbr = quo;
    }
  result[j] = '\0';
  my_putstr(my_revstr(result));
  return (my_strlen(result));
}
示例#5
0
int	my_putnbr_base(int nbr, char *base)
{
  int	base_size;
  char	value[1024];
  int	i;
  int	my_nbr;

  my_nbr = nbr;
  init_tab(value);
  base_size = my_strlen(base);
  if (base_size <= 0)
    return (my_nbr);

  i = 0;
  while (nbr > 0)
  {
    value[i++] = *(base + (nbr % base_size));
    nbr /= base_size;
  }
  write(1, "\\", 1);
  if (my_strlen(value) == 1)
    write(1, "0", 1);
  my_putstr(my_revstr(value));
  return (my_nbr);
}
示例#6
0
static char	*edit_getword(t_line *line, int *pos)
{
  t_line	*tmp;
  char		*word;
  int	i;

  i = -1;
  *pos = 0;
  tmp = line;
  while (tmp && !tmp->status)
    {
      if (tmp->letter == ' ' || tmp->letter == '\t')
	*pos += 1;
      tmp = tmp->next;
    }
  if (edit_cp(line) == 0)
    *pos += 1;
  if (tmp == NULL ||
      ((word = xmalloc(sizeof(*word) * (edit_listlen(line) + 2))) == NULL))
    return (my_strdup("*"));
  word[++i] = '*';
  while (tmp && (tmp->letter != ' ' && tmp->letter != '\t'))
    {
      word[++i] = tmp->letter;
      tmp = tmp->prev;
    }
  return (my_revstr(word));
}
示例#7
0
char	*_op_sub(char *tab[2], t_base *base, char ops[7], int len[2])
{
  char	*buff;
  int	i;
  int	ret;
  int	tmp;

  buff = xmalloc((MAX(len[0], len[1]) + 3) * sizeof(char));
  my_memset(buff, 0x0, MAX(len[0], len[1]) + 3);
  init_var(&i, &ret, &tmp);
  while (len[0] >= min_ref(tab[0], ops) || len[1] >= min_ref(tab[1], ops))
  {
    if (len[0] >= min_ref(tab[0], ops) && len[1] >= min_ref(tab[1], ops))
      tmp = base->value[tab[0][len[0]]] - base->value[tab[1][len[1]]] - ret;
    else if (len[0] >= min_ref(tab[0], ops))
      tmp = base->value[tab[0][len[0]]] - ret;
    ret = (tmp < 0);
    if (tmp < 0)
      tmp += base->length;
    buff[i++] = get_char_for_value(tmp % base->length, base);
    --len[0];
    --len[1];
  }
  if (ret > 0)
    buff[i++] = get_char_for_value(ret % base->length, base);
  return (my_revstr(my_strdup(buff)));
}
示例#8
0
char	*server_int_to_str(int value)
{
  int	i;
  char	*str;
  int	result;

  i = -1;
  if ((str = malloc(sizeof(char) * (20 + 1))) == NULL)
    return (NULL);
  if (value <= 0)
    {
      str[0] = '0';
      str[1] = '\0';
      return (str);
    }
  else
    {
      while (value != 0)
	{
	  result = value % 10;
	  value = value / 10;
	  str[++i] = result + '0';
	}
      str[++i] = '\0';
    }
  return(my_revstr(str));
}
示例#9
0
char	*convert_base(char *nbr, char *base_from, char *base_to)
{
  char	*res;
  int	nb;
  int	i;
  int	neg;

  res = malloc(sizeof(*res) * 100);
  nb = my_getnbr_base(nbr, base_from);
  neg = 0;
  if (nb < 0 && (neg = 1))
    nb *= -1;
  i = 0;
  do
    {
      res[i] = base_to[nb % my_strlen(base_to)];
      nb /= my_strlen(base_to);
      i++;
    } while (nb > 0);
  if (neg == 1)
    {
      res[i] = '-';
      i++;
    }
  res[i] = '\0';
  res = my_revstr(res);
  return (res);
}
示例#10
0
int	my_putnbr_base(int nbr, char *base)
{
    int	base_size;
    char	value[1024];
    int	i;
    int	my_nbr;

    my_nbr = nbr;
    init_putnbr_base_tab(value);
    base_size = my_strlen(base);
    if (base_size <= 0)
        return (my_nbr);
    if (nbr < 0)
    {
        my_putstr("-");
        nbr *= -1;
    }

    i = 0;
    while (nbr > 0)
    {
        value[i++] = *(base + (nbr % base_size));
        nbr /= base_size;
    }
    my_putstr(my_revstr(value));
    return (my_nbr);
}
示例#11
0
char	*ajoute_moins(char *base, char *operators, char *expr)
{
  char	*new_expr;
  int	len;

  len = my_strlen(expr);
  if ((len == 1) && (expr[0] == base[0]))
    return (expr);
  if ((new_expr = malloc(sizeof(*new_expr) * len + 2)) == NULL)
    exit(-1);
  my_revstr(expr);
  my_strcpy(new_expr, expr);
  new_expr[len] = operators[OP_NEG_IDX];
  new_expr[len + 1] = '\0';
  my_revstr(new_expr);
  return (new_expr);
}
示例#12
0
文件: tools3.c 项目: Alban95/epikong
char	*end_convert_base(char *result, int sign, int i)
{
  if (sign == 1)
    result[i++] = '-';
  result[i] = '\0';
  result = my_revstr(result);
  return (result);
}
示例#13
0
void			get_map()
{
	extern t_client t;
	char 		*str;
	char		*tmp;
	int		i;
	int		a;

	t.k = 0;
	a = 0;
	tmp = xmalloc(56 * sizeof(*tmp));
	tmp = my_strcat("bct ", int_to_char(t.x_map - 1));
	tmp = my_strcat(tmp, " ");
	tmp = my_strcat(tmp, int_to_char(t.y_map - 1));
	t.contenu_map[t.k] = xmalloc(256 * sizeof(*t.contenu_map));
	send(t.s, "mct\n", 4, 0);
	str = xmalloc(256 * sizeof(*str));
	t.tab = xmalloc(513 * sizeof(*t.tab));
	str[0] = '\0';
	t.tab[0] = '\0';
	while ((t.size = recv(t.s, t.buf, 256, 0)) != -1)
	{
		if (my_strlen(str) != 0)
		{
			t.tab = my_strcat(t.tab, str);
			str[0] = '\0';
		}
		if (t.buf[t.size - 1] != '\n')
		{
			for (i = 0;t.buf[t.size - 1] != '\n';t.size--, i++)
				str[i] = t.buf[t.size - 1];
			t.buf[t.size] = '\0';
			t.tab = my_strcat(t.tab, t.buf);
			str[i] = '\0';
			str = my_revstr(str);
		}
		else
		{
			t.buf[t.size] = '\0';
			t.tab = my_strcat(t.tab, t.buf);
		}
		if (t.tab)
			if (get_infomap(tmp) == 1)
				break;
		t.tab[0] = '\0';
	}
	free(t.tab);
	free(tmp);
	free(str);
	draw_map();
}
示例#14
0
void	conv_10_to_16(unsigned int nbr, char *val)
{
  int	i;

  i = 0;
  while (nbr >= 16)
    {
      val[i++] = HEXA[nbr % 16];
      nbr = nbr / 16;
    }
  val[i++] = HEXA[nbr % 16];
  val[i] = '\0';
  my_revstr(val);
}
void	my_put_nbr_bin(unsigned int nb)
{
  char	bin[33];
  int	i;

  i = 0;
  while (nb)
    {
      bin[i++] = '0' + nb % 2;
      nb /= 2;
    }
  bin[i] = '\0';
  my_revstr(bin);
  my_putstr(bin);
}
void	my_put_nbr_oct(unsigned int nb)
{
  char	oct[12];
  int	i;

  i = 0;
  while (nb)
    {
      oct[i++] = '0' + nb % 8;
      nb /= 8;
    }
  while (i < 3)
    oct[i++] = '0';
  oct[i] = '\0';
  my_revstr(oct);
  my_putstr(oct);
}
示例#17
0
文件: my_sprint3.c 项目: plean/PSU
int			my_sprintu(va_list list, char *buffer)
{
  unsigned int		nb;
  int			n;

  nb = va_arg(list, unsigned int);
  my_sputunsigned(buffer, nb);
  n = 0;
  while (nb > 0)
    {
      nb = nb / 10;
      n = n + 1;
    }
  buffer[n] = 0;
  my_revstr(buffer);
  return (n);
}
示例#18
0
文件: my_sprint3.c 项目: plean/PSU
int			my_sprintb(va_list list, char *buffer)
{
  unsigned int		nb;
  int			n;

  nb = va_arg(list, unsigned int);
  my_sput_nbr_base(buffer, nb, "01");
  n = 0;
  while (nb > 0)
    {
      nb = nb / 2;
      n = n + 1;
    }
  buffer[n] = 0;
  my_revstr(buffer);
  return (n);
}
示例#19
0
文件: my_sprint3.c 项目: plean/PSU
int			my_sprintp(va_list list, char *buffer)
{
  unsigned long int	nb;
  int			n;

  nb = va_arg(list, unsigned long int);
  my_sputstr(buffer, "0x");
  my_sput_16(&buffer[my_strlen("0x")], nb, "0123456789abcdef\0");
  n = 2;
  while (nb > 0)
    {
      nb = nb / 16;
      n = n + 1;
    }
  buffer[n] = 0;
  my_revstr(buffer);
  return (n);
}
void		my_put_nbr_hex(long int nb, int flag)
{
  const char	base[16] = "0123456789abcdef";
  char		hex[10];
  int		i;

  i = 0;
  while (nb)
    {
      hex[i++] = base[nb % 16];
      if (flag && nb % 16 > 10)
	hex[i - 1] = base[nb % 16] - ('a' - 'A');
      nb /= 16;
    }
  hex[i] = '\0';
  my_revstr(hex);
  my_putstr(hex);
}
示例#21
0
char	*sub(char *base, char *operators, char *exprmax, char *exprmin, int flagmin)
{
  int	i;
  char *stringfinale;
  int	res;
  int	retenu;

  i = 0;
  retenu = 0;
  if ((stringfinale = malloc(sizeof(*stringfinale) * (my_strlen(exprmax) + 2))) == 0)
    exit(-1);
  while (exprmax[i] != '\0')
    {
      stringfinale[i] = calcul_res(base, indice_in_base(base, exprmax[i]), if_exist_exprmin(base, i, exprmin), &retenu);
      i = i + 1;
    }
  check_ending_zero(base, retenu, &i, stringfinale); 
  check_flagmin(operators, stringfinale, &i, flagmin);
  stringfinale[i] = '\0';
  my_revstr(stringfinale);
  return (stringfinale);
}
示例#22
0
void	my_itoa(int nbr, char *str)
{
  int	i;
  int	signe;

  i = 0;
  signe = nbr;
  if (signe < 0)
    nbr = -nbr;
  while (nbr > 0)
    {
      str[i] = ((nbr % 10) + '0');
      nbr = nbr / 10;
      i = i + 1;
    }
  if (signe < 0)
    {
      str[i] = '-';
      i = i + 1;
    }
  str[i] = '\0';
  my_revstr(str);
}
示例#23
0
char 		*ret_lg_nbr_base(void *var, char *base, char *ag)
{
  char		*ret;
  char		*b;
  char		*basef;
  long		nb;

  if ((b = malloc(2 * sizeof(*b))) == NULL)
    return (NULL);
  b[1] = '\0';
  nb = var;
  ret = NULL;
  basef = base;
  check_ag_base(ag, &basef);
  while (nb > 0)
    {
      b[0] = basef[nb % my_strlen(basef)];
      ret = my_ev_strcat(ret, b);
      nb /= my_strlen(basef);
    }
  free(b);
  free(basef);
  return (my_revstr(ret));
}
示例#24
0
char	*op_add(char *tab[2], t_base *base, char ops[7], int len[2])
{
  int	i;
  char	*buff;
  int	ret;

  buff = xmalloc((MAX(len[0], len[1]) + 3) * sizeof(char));
  my_memset(buff, 0x0, MAX(len[0], len[1]) + 3);
  i = 0;
  ret = 0;
  while (len[0] >= min_ref(tab[0], ops) || len[1] >= min_ref(tab[1], ops))
  {
    ret += get_op_add_ret(len, tab, base, ops);
    buff[i++] = get_char_for_value(ret % base->length, base);
    ret /= base->length;
    --len[0];
    --len[1];
  }
  if (ret > 0)
    buff[i++] = get_char_for_value(ret % base->length, base);
  if (min_ref(tab[0], ops) == 1 && min_ref(tab[1], ops) == 1)
    buff[i++] = '-';
  return (my_revstr(my_strdup(buff)));
}
示例#25
0
文件: testmy.c 项目: dott94/linux_lab
//test function for libmy
int main() {
    //my_char takes in char and prints it
    int i;
    for (i = 0; i < 128; i++) { // testing my_char for all valid characters including null
        my_char(i);
    }
    my_char(-1);
    my_char(128); // should be too big
    my_char("david");
    my_char("");
    my_char('\0');

    //my_int takes in int and prints it
    my_int(0);
    my_int(1);
    my_int(-1);
    my_int(1000);
    my_int(-1000);
    my_int(2147483647); //max int on 32b machine
    my_int(2147483648); //max + 1
    my_int(-2147483647); //min int
    my_int(-2147483648);//min int - 1
    my_int("david");
    my_int('D');
    my_int(1.3);
    my_int("");
    my_int('\0');

    //my_alpha has no input and prints alphabet
    my_alpha();
    //any parameter will cause it not to compile

    //my_digits has no input and prints 0 - 9
    my_digits();
    //no return, can't pass anything in

    //my_str
    my_str(0);
    my_str("david");
    my_str("");
    my_str("asdfkljasdflkjhasdflkjhasdfkljasdfkalsdjfalksjdaklsjdflkasjdaslkdaskjdfaskldjaskljd");
    //my_str(65);
    //my_str('\0');//null char
    //my_str('A');
    my_str("dav\0id"); //null char in string
    //my_str(98723498723);

    //my_revstr
    my_revstr(0);
    my_revstr("david");
    my_revstr("");
    my_revstr("asdfkljasdflkjhasdflkjhasdfkljasdfkalsdjfalksjdaklsjdflkasjdaslkdaskjdfaskldjaskljd");
    //my_revstr(65);
    //my_revstr('\0');//null char
    //my_revstr('A');
    my_revstr("dav\0id"); //null char in string
    //my_revstr(98723498723);

    //my_strindex
    my_int(my_strindex("david", 'a'));
    my_int(my_strindex("david", 'd')); // there are two of them
    my_int(my_strindex("david", 'b')); // not in string
    my_int(my_strindex("david", '\0'));
    my_int(my_strindex("david", ""));
    my_int(my_strindex("", 'a'));
    my_int(my_strindex("dav\0id", 'i')); //should not find i
    my_int(my_strindex(0, 0));

    //my_strrindex
    my_int(my_strrindex("david", 'a'));
    my_int(my_strrindex("david", 'd')); // there are two of them
    my_int(my_strrindex("david", 'b')); // not in string
    my_int(my_strrindex("david", '\0'));
    my_int(my_strrindex("david", ""));
    my_int(my_strrindex("", 'a'));
    my_int(my_strrindex("dav\0id", 'i')); //should not find i
    my_int(my_strrindex(0, 0));

    //my_strlen
    my_int(my_strlen("david"));//should be 5
    my_int(my_strlen("dav\0id"));
    my_int(my_strlen(""));
    my_int(my_strlen(" "));
    //my_int(my_strlen('a'));
    my_int(my_strlen(0));
    //my_int(my_strlen(1234));

    //my_num_base
    my_num_base(0, 0);//print nothing
    my_num_base(0, "david");
    my_num_base(4, 0);
    my_num_base(-4, 0);
    my_num_base(4, "david");//should print d
    my_num_base(-4, "david");//-d
    my_num_base(5, "?");//?????
    my_num_base(-5, "?");
    //my_num_base("", "david");
    my_num_base('z', "david");

}