Esempio n. 1
0
int main()
{
  int i;
  int count = 0;

  for(i=1;i<=1000;i++)
  {
    count += strlen(to_words(i));
  }

  printf("%d\n", count);
}
void testFileLoader(const char * url)
{
	char * text;
	char ** words = NULL;
	int wordsSize = 0;

	text = file_loader(url);
	
	if (text != NULL)
	{
		//fputs(text, stdout);
	}

	wordsSize = to_words(text, &words);

	for(int i = 0; i < wordsSize; i++)
	{
		fputs("\n", stdout);
		fputs(words[i], stdout);
		fputs("\n", stdout);
	}	
}
int main(int argc, char **argv) 
{
	int c;

	//File loader variables
	char * text;
	char ** words = NULL;
	int wordsSize = 0;

	opterr = 0;

	while ((c = getopt(argc, argv, "hVb:s:")) != -1)
	{
		switch (c)
		{
			// Ayuda
			case 'h':
				ayudaImprimirSalidaEstandar();
				break;

			// Version
			case 'V':
				versionImprimirSalidaEstandar();
				break;

			// Ejecucion de bubblesort
			case 'b':

				// Cargamos contenidos de archivos
				text = cargarTextosDeArchivos(2, argc, argv);

				// Si el/los archivos esta/n vacio/s, salimos
				if (text == NULL) break;
	
				wordsSize = to_words(text, &words);

				if (wordsSize == -1) break;
				
				// Ejecutamos bubblesort
				bubblesort(words, wordsSize);

				// Enviamos a salida estandar
				ordenamientoImprimirSalidaEstandar(words, wordsSize);
				
				free(words);
				free(text);
				break;

			// Ejecucion de shellsort
			case 's':

				// Cargamos contenidos de archivos
				text = cargarTextosDeArchivos(2, argc, argv);

				// Si el/los archivos esta/n vacio/s, salimos
				if (text == NULL) break;

				wordsSize = to_words(text, &words);

				if (wordsSize == -1) break;

				// Ejecutamos shellsort
				shellsort(words, wordsSize);

				// Enviamos a salida estandar
				ordenamientoImprimirSalidaEstandar(words, wordsSize);

				free(words);
				free(text);
				break;
			
			// No se especifica nombre de archivo
			case '?':

				// Ejecutar bubblesort con texto desde entrada estandar
				if(optopt == 'b')
				{
					// Cargamos texto
					text = cargarTextosDeEntradaEstandar();
					
					// Si no se ingreso texto, salimos
					if (text == NULL) break;
					wordsSize = to_words(text, &words);

					if (wordsSize == -1) break;
					
					// Ejecutamos bubblesort
					bubblesort(words, wordsSize);

					// Enviamos a salida estandar
					ordenamientoImprimirSalidaEstandar(words, wordsSize);

					free(words);
					free(text);
					break;
				}

				// Ejecutar shellsort con texto desde entrada
				// estandar
				else if(optopt == 's')
				{
					// Cargamos texto
					text = cargarTextosDeEntradaEstandar();
					
					// Si no se ingreso texto, salimos
					if (text == NULL) break;
					wordsSize = to_words(text, &words);

					if (wordsSize == -1) break;
					
					// Ejecutamos shellsort
					shellsort(words, wordsSize);

					// Enviamos a salida estandar
					ordenamientoImprimirSalidaEstandar(words, wordsSize);

					free(words);
					free(text);
					break;
				}

			default:
				opterr = 1;
				break;
		}
	}

	// Manejo de casos en que no se ingresan argumentos validos
	if(opterr || argc <= 1)
	{
		fprintf (stderr, "Los argumentos no son validos.\n");
		printf("Tipee 'tp0 -h' para ver el modo de uso.\n");
	}


	return 0;
}