#include <stdio.h>
#include <string.h>
//Programa principal
	
int main(void){
	int escolha,posicao1,posicao2,posicao3,posicao4;
	char string[100];
	char string2[100];
	printf("\n**************************************");
	printf("\nPrograma simulador de editor de textos\tVERSAO 1.0\n");
	printf("**************************************\n");
	printf("\n\tPor favor digite uma string qualquer (inclusive com espacos, com no maximo de 100 caracteres):\n\t>>");
	//Solicita ao usuario uma string
	gets(string);
	printf("\n\tSua string possui %d caracteres\n",strlen(string));
	//Menu
	do{
		printf("\n\t-----------------Menu de opcoes-----------------\n");
		printf("\t1-Inserir caracteres na string\n");
		printf("\t2-Apagar caracteres na string fornecida\n");
		printf("\t3-Mover caracteres na string fornecida\n\t0-Para sair\n");
		printf("\tDigite a opcao que deseja\n\t>>");
		scanf("%i",&escolha);
		//De acordo com a escolha execução de determinado recurso
		switch (escolha){
			case 1:
				/*Pede a partir de qual posicao serÃ£o inseridos caracteres, 
				e depois quais os caracteres desejados, aí joga na funcao*/
				printf("\n\tDigite a partir de que posicao(considere cada letra e espaco como uma posicao)"); 
				printf("deseja inserir caracteres:");
				scanf("%d",&posicao1);
				if (posicao1 > 0 && posicao1 <= strlen(string)){
					printf("\tDigite os caracteres que deseja inserir:");
					scanf("%s",string2);
					inserir(string,string2,posicao1);
				}
				else{
					printf("\n\tVc digitou uma posicao que nao existe,tente novamente\n");
				}
				break;
			case 2:
				/*Pede de qual posicao até qual posicao o usuario deseja apagar na string*/
				printf("\n\tEste recurso apaga caracteres de uma determinada posicao ate' outra determinada posicao");
				printf("\n\tDigite a o intervalo a ser apagado\n");
				printf("\tUse a seguinte formatacao, da menor posicao para a maior (posicao1-posicao2):");
				scanf("%d-%d",&posicao1,&posicao2);
				if (posicao1 > 0 && posicao2 > 0 && posicao1 <= strlen(string) && posicao2 <= strlen(string) && 
				posicao1 < posicao2)
					apagar_caractere(string,posicao1,posicao2);
				else
					printf("\n\tVc digitou um intervalo que nao existe,tente novamente\n");
				break;
			case 3:
				printf("\n\tEste recurso solicita o intervalo da string que deseja mover,");
				printf("e onde este intervalo deveser inserido");
				printf("\n\tDigite a o intervalo a ser movido\n");
				printf("\tUse a seguinte formatacao, da menor posicao para a maior (posicao1-posicao2):");
				scanf("%d-%d",&posicao1,&posicao2);
				if (posicao1 > 0 && posicao2 > 0 && posicao1 <= strlen(string) && posicao2 <= strlen(string) &&
				posicao1 > posicao2){
					printf("\n\tAgora digite com a mesma formatacao o intervalo para");
					printf(" onde deve ser movido o pedaco de string:");
					scanf("%d-%d",&posicao3,&posicao4);
					if (posicao3 > 0 && posicao4 > 0 && posicao3 <= strlen(string) && posicao4 <= strlen(string) &&
					posicao3 < posicao4)
						//mover_caractere(string,posicao1,posicao2,posicao3,posicao4);
					else
						printf("\n\tVc digitou um intervalo que nao existe,tente novamente\n");
				}	
				else
					printf("\n\tVc digitou um intervalo que nao existe,tente novamente\n");
								
		}
	}while (escolha!=0);		
	return 0;
}
