예제 #1
0
int		main(int ac, char **av)
{
	t_p4		*p4;

	p4 = NULL;
	if (error_usage(ac, av) == -1)
		return (-1);
	ft_putendl("\n\tWelcome to puissance 4");
	ft_putendl("");
	p4 = init_struct(p4, av);
	put_gameboard(p4);
	whoplaysfirst(p4);
	return (0);
}
예제 #2
0
파일: anagram.c 프로젝트: jjolly/anagram
int main(int argc, char *argv[])
{
  char *srch, match[MAX_WORD_LEN], word[MAX_WORD_LEN];
  int count[26], ci, wild = 0, finding = 1, pos = 0;

  if ( argc < 2 )
    error_usage(argv[0], 1);

  for(ci = 0; ci < 26; ci++) count[ci] = 0;

  srch = argv[1];

  while(*srch != '\0')
  {
    ci = 1;
    if ( *srch >= '0' && *srch <= '9' )
    {
      ci = 0;
      while(*srch >= '0' && *srch <= '9')
        ci = ci * 10 + *(srch++) - '0';
    }
    if ( *srch >= 'a' && *srch <= 'z' ) count[*srch - 'a'] += ci;
    else if ( *srch >= 'A' && *srch <= 'Z' ) count[*srch - 'A'] += ci;
    else if ( *srch == '.' || *srch == '_' ) wild += ci;
    else error_usage(argv[0], 1);
    srch++;
  }

  match[0] = '\0';
  word[0] = '\0';

  while((ci = fgetc(stdin)) != EOF)
  {
    if ( ci & 0x80 )
      while ( (ci<<=1) & 0x80 ) fgetc(stdin);
    else if ( ci == '\n' || ci == '\r' )
    {
      if ( *word != '\0' && finding == 1 )
        fprintf(stdout, "%s\n", word);
      srch = match;
      while(*srch != '\0')
      {
        if ( *srch == '.' ) wild++;
        else count[*srch - 'a']++;
        srch++;
      }
      match[0] = '\0';
      word[0] = '\0';
      pos = 0;
      finding = 1;
    }
    else if ( finding == 1 )
    {
      if ( ci >= 'A' && ci <= 'Z' ) ci += 'a' - 'A';
      if ( ci >= 'a' && ci <= 'z' )
      {
        if ( count[ci - 'a'] > 0 ) 
        {
          count[ci - 'a']--;
          match[pos] = ci;
        }
        else if ( wild > 0 )
        {
          wild--;
          match[pos] = '.';
        }
        else finding = 0;
        if ( finding == 1 ) 
        {
          if ( pos < MAX_WORD_LEN - 1 )
          {
            word[pos++] = ci;
            word[pos] = '\0';
            match[pos] = '\0';
          }
          else finding = 0;
        }
      }
      else finding = 0;
    }
  }

  return 0;
}