示例#1
0
int parse_simple(char *start, char *end, Atom *result)
{
	char *p;
	int value = strtoimax(start, &p, 10);
	/*it is integer*/
	if(p == end) {
		result->type = ATOM_INTEGER;
		result->value.integer = value;
		//return true;
		return ERROR_OK;
	}

	/*nil or symbol*/
	char *buf = malloc(end - start + 1);
	p = buf;
	while(start != end) {
		*p++= *start++;
	}
	*p = '\0';
	/*convert to uppercase*/
	convertToUpperCase(buf);
	if(strcmp(buf, "NIL") == 0)
		*result = nil;
	else
		*result = make_symbol(buf);
	free(buf);
	return ERROR_OK;

}
示例#2
0
int main(int argc, char *argv[])
{
  char *instruction = *(argv + 2);
  char *input = *(argv + 1);

switch(*instruction)
    {
    case '1':
     convertToInt(input);
      break;
    case '2':
        convertToFloat(input);
      break;
    case '3':
        convertToUpperCase(input);
      break;
    case '4':
        revString(input);
      break;
    case '5':
        palindrome(input);
      break;
    default:
      printf("Error: \"%s\" was an invalid input.\n", argv[2]);
    }

  return 0;
}
示例#3
0
文件: crecs.c 项目: Tingles/Project2
static struct query
array_queryname(void *self, void *target){
  int i;
  size_t length;
  struct query results = {-1,0};
  
  if (self == 0 || target == 0){
    results.success = -1;
    results.ncomparisons = 0;
    return results;
  }
  CountryStorage *rs = (CountryStorage *) self;
  
  for (i = 1; i <= rs->maxid; i++){
    results.ncomparisons++;
    if(rs->countries[i] != 0){
      length = sizeof (rs->countries[i]->name);
      int cond,diff;
      char *current = strndup(rs->countries[i]->name, length);
      char *pt = strdup(current);
      strncpy(pt, (char *)target, length);
      if ((diff = length - strlen(pt)) > 0)
	memset((void *)(pt + (length - diff)), (unsigned char) ' ', diff);
      convertToUpperCase(current);
      convertToUpperCase(pt);
      cond = strncmp(current, pt, length);
      free(current); free(pt);
      if (cond == 0){
	prettyprint(rs->countries[i]);
	results.success = 1;
	return results;
      }
    }
  }
  printf("ERROR - NO COUNTRY WITH NAME: %s.\n", (char *) target);
  return results;
}
示例#4
0
void SelecionarArquivo(char *titulo, char *botao, void (*func)(char *), char *extensoes) {
  char exts[512], ext1[128],ext2[128];

  GtkFileFilter *filter;
  GtkWidget *fileSelect=gtk_file_chooser_dialog_new(titulo, NULL, GTK_FILE_CHOOSER_ACTION_OPEN,
                                                                  GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
                                                                  botao, GTK_RESPONSE_ACCEPT,
                                                                  NULL);

  if (extensoes) {
    strncpy(exts,extensoes,512);

    char *pch = strtok(exts," ");

    while (pch != NULL) {
      sprintf(ext1, "*.%s", pch);

      convertToUpperCase(pch);
      sprintf(ext2, "Arquivos %s", pch);

      filter = gtk_file_filter_new();
      gtk_file_filter_set_name(filter,ext2);
      gtk_file_filter_add_pattern(filter, ext1);

      gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(fileSelect), filter);

      pch = strtok(NULL," ");
    }
  }

  filter = gtk_file_filter_new();
  gtk_file_filter_set_name(filter,"Todos os arquivos");
  gtk_file_filter_add_pattern(filter, "*");

  gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(fileSelect), filter);

  if (gtk_dialog_run(GTK_DIALOG (fileSelect)) == GTK_RESPONSE_ACCEPT) {
    char *filename;
    filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(fileSelect));
    func(filename);

    g_free (filename);
  }

  gtk_widget_destroy(fileSelect);
}