Beispiel #1
0
int main() {
  inserirItem(&lista,3);
  inserirItem(&lista,5);
  inserirItem(&lista,9);
  imprimeListaCompleta(lista);
  printf("\n\n");
  imprimeListaOrdemDigitacao(lista);
  system("PAUSE");
  return 0;
}
// ***********************************************
// ******              Inverter as letras   ******
// ***********************************************
void inverteFrase(Lista S)
{
char frase[40];
char c;
int pos,i = 0;




   if ( S.inicio == NULL)
      printf("Lista Vazia\n");
   else {

      tNo* posAtual = S.inicio;


        do
        {
          frase[i] = posAtual->caractere;
          posAtual = posAtual->prox;
          i++;
          pos++;
        }while(posAtual != NULL);

        pos=S.tam;
        initString(&S);

        do
        {
          c = frase[pos];
          if(c == 91)
          {
          inserirItem(&S,' ');
          }else
          {
            inserirItem(&S,c);
          }
          //printf("%c",c);
           pos--;
        }while((pos >= 0 )||( c >= 48)&&(c <= 125));

      }
    printf("\n");


	imprimeLista(S);
}
Beispiel #3
0
void imprimeListaOrdemDigitacao(LISTA listaTemp){
  LISTA listaTempOrdem = NULL;
  while (listaTemp!=NULL){
    inserirItem(&listaTempOrdem,listaTemp->conteudo);
    listaTemp = listaTemp->prox;
  }
  imprimeListaCompleta(listaTempOrdem);
}
// ***********************************************
// ******        copia strings              ******
// ***********************************************
bool copiaString(Lista*Original, Lista* Copia)
{
    bool OK,r = TRUE;
    int pos =0;
    char elemento;
    tNo* posOriginal = Original->inicio;

   if ( Original->inicio == NULL)
    {
        printf("Lista Vazia\n");
        r = FALSE;
        return r;
    }

   else {


        do {

          //printf("posicao[%i] - dado[%c] -> ponteiro[%p]\n", pos, posOriginal->caractere , posOriginal);
          elemento = posOriginal->caractere;
          OK = inserirItem(Copia,elemento);
                if(OK == TRUE)
                    {
                    posOriginal = posOriginal->prox;
                    }
                 else
                    {
                        printf("erro na copia da lista.\n");
                    }


          } while (posOriginal != NULL);
      }
   return r;

}
int main()
{
    int opcao,i,j,tam,contpalavra,volta;
    char c;
    char caracter;
    Lista SVazia,S1,S,S2,S3,S4;
    opcao = 0;
    bool OK,OK1,OK2;
    opcao = menu();
    system("cls");

        if(opcao == 1)
        {
            system("cls");
            printf("\n\n");
            printf("Criando uma string vazia...\n\n");
            OK = initString(&SVazia);
                if(OK == TRUE)
                    {
                        OK = testavazio(SVazia);
                            if(OK == TRUE)
                                {
                                printf("\n");
                                printf("String vazia criada com sucesso.\n");
                                printf("\n");
                                }
                    }else
                    {
                        system("cls");
                        printf("Ocorreu um erro na criação da lista vazia.\n");
                    }
            printf("\n\n");
        }

        if(opcao == 2)
        {   i,contpalavra = 0;
            c = '\0';
            system("cls");
            OK = initString(&S1);
            OK1 = initString(&S);
            printf("\n\n");
            printf("Criar uma String[S1] e copiar para outra String[S]...\n\n");
            if((OK == TRUE)&&(OK1 == TRUE))
                {
                    printf("Lista S1 e S criadas com sucesso. \n");
                }
                printf("\n\n");
            printf("insira a String[S1]:\n");
            scanf("%c",&c);
            if((OK == TRUE)&&(OK1 == TRUE))
                {
                    OK = testavazio(S1);
                    OK1 = testavazio(S);
                        if((OK == TRUE)&&(OK1 == TRUE))
                            {
                                //  while(frase[i]!= '.')
                                    for(i=0; i<=200 ;i++)
                                        {
                                                   if(caracter!='.')
                                                {
                                                    scanf("%c",&c);
                                                    caracter = c;
                                                            if(caracter == ' ')
                                                                    {
                                                                        contpalavra++;
                                                                    }

                                                    OK = inserirItem(&S1,caracter);
                                                            if(OK == TRUE)
                                                            {
                                                            printf("inserção[%i] realizada com sucesso.\n",i);
                                                            }else
                                                                {
                                                                    printf("inserção[%i] falhou.\n",i);
                                                                }
                                                    }else
                                                {
                                                contpalavra++;
                                                break;
                                                }

                                        }
                            }
                                }else
                                    {
                                    system("cls");
                                    printf("Ocorreu um erro na criação da lista S1.\n");
                                    }
                    printf("\n\n");
                    //printf("palavras[%i]",contpalavra);
                    printf("\n\n");
                    OK = copiaString(&S1,&S);
                    if(OK == TRUE)
                    {
                    printf("\n\n");
                    printf("String Original [S1]");
                    printf("\n\n");
                    imprimeLista(S1);
                    printf("\n\n");
                    printf("String Copia [S]");
                    printf("\n\n");
                    imprimeLista(S);
                    }else
                    {
                    printf("erro na criacao da copia da lista.\n");
                    }
         OK = verificarStrings(&S1,&S);
         if (OK == TRUE)
         {
          printf("\n\n");
          printf("As Strings sao identicas.\n");
          printf("\n\n");
         }else
         {
          printf("\n\n");
          printf("As Strings não são identicas.\n");
          printf("\n\n");
         }

        }
        if(opcao == 3)
        {
            i,contpalavra = 0;
            c = '\0';
            system("cls");
            OK = initString(&S1);
            OK1 = initString(&S2);
            printf("\n\n");
            printf("Verificar se duas Strings são identicas...\n\n");
            if((OK == TRUE)&&(OK1 == TRUE))
                {
                    printf("Lista S1 e S2 criadas com sucesso. \n");
                }
            printf("\n\n");
            printf("insira a String[S1]:\n");
            scanf("%c",&c);
            if(OK == TRUE)
                {
                    OK = testavazio(S1);
                      if(OK == TRUE)
                            {
                                      for(i=0; i<=200 ;i++)
                                        {
                                                   if(caracter!='.')
                                                {
                                                    scanf("%c",&c);
                                                    caracter = c;
                                                            if(caracter == ' ')
                                                                    {
                                                                        contpalavra++;
                                                                    }

                                                    OK = inserirItem(&S1,caracter);
                                                            if(OK == TRUE)
                                                            {
                                                            printf("inserção[%i] realizada com sucesso.\n",i);
                                                            }else
                                                                {
                                                                    printf("inserção[%i] falhou.\n",i);
                                                                }
                                                    }else
                                                {
                                                contpalavra++;
                                                break;
                                                }

                                            }
                                }else
                                    {
                                    system("cls");
                                    printf("Ocorreu um erro na criação da lista S2.\n");
                                    }
            printf("\n\n");
            //printf("palavras[%i]",contpalavra);
            printf("\n\n");
            contpalavra = 0;
            caracter = '\0';
            printf("insira a String[S2]:\n");
            scanf("%c",&c);
            if(OK == TRUE)
                {
                    OK = testavazio(S2);
                      if(OK == TRUE)
                            {
                                      for(i=0; i<=200 ;i++)
                                        {
                                                   if(caracter!='.')
                                                {
                                                    scanf("%c",&c);
                                                    caracter = c;
                                                            if(caracter == ' ')
                                                                    {
                                                                        contpalavra++;
                                                                    }

                                                    OK = inserirItem(&S2,caracter);
                                                            if(OK == TRUE)
                                                            {
                                                            printf("inserção[%i] realizada com sucesso.\n",i);
                                                            }else
                                                                {
                                                                    printf("inserção[%i] falhou.\n",i);
                                                                }
                                                }else
                                                {
                                                contpalavra++;
                                                break;
                                                }

                                            }
                                }else
                                    {
                                    system("cls");
                                    printf("Ocorreu um erro na criação da lista S1.\n");
                                    }


                    printf("\n\n");
                    //printf("palavras[%i]",contpalavra);
                    printf("\n\n");
                    printf("\n\n");
                    }else
                    {
                    printf("erro na criacao da copia da lista.\n");
                    }
         OK = verificarStrings(&S1,&S2);
         if (OK == TRUE)
         {
          printf("\n\n");
          printf("As Strings sao identicas.\n");
          printf("\n\n");
         }else
         {
          printf("\n\n");
          printf("As Strings nao sao identicas.\n");
          printf("\n\n");
         }
            }

        }
        if(opcao == 4)
        {
            int i,contpalavra = 0;
            c = '\0';
            caracter='\0';
            system("cls");
            OK = initString(&S3);
            printf("\n\n");
            printf("Criar uma String[S3] e contar quantas palavras...\n\n");
            if(OK == TRUE)
                {
                    printf("Lista S3 criadas com sucesso. \n");
                }
            printf("\n\n");
            printf("insira a String:\n");
            scanf("%c",&c);
            if(OK == TRUE)
                {
                    OK = testavazio(S3);

                        if(OK == TRUE)
                            {
                                //  while(frase[i]!= '.')
                                    for(i=0; i<=200 ;i++)
                                        {
                                                   if(caracter!='.')
                                                {
                                                    scanf("%c",&c);
                                                    caracter = c;
                                                            if(caracter == ' ')
                                                                    {
                                                                        contpalavra++;
                                                                    }

                                                    OK = inserirItem(&S3,caracter);
                                                            if(OK == TRUE)
                                                            {
                                                            //printf("inserção[%i] realizada com sucesso.\n",i);
                                                            }else
                                                                {
                                                                    printf("inserção[%i] falhou.\n",i);
                                                                }
                                                    }else
                                                {
                                                contpalavra++;
                                                break;
                                                }

                                        }
                            }
                                }else
                                    {
                                    system("cls");
                                    printf("Ocorreu um erro na criação da lista S3.\n");
                                    }
                    printf("\n\n");
                    printf("palavras[%i]",contpalavra);
                    printf("\n\n");

        }
        if(opcao == 5)
        {
            int i,contpalavra = 0;
            c = '\0';
            caracter='\0';
            system("cls");
            OK = initString(&S4);
            printf("\n\n");
            printf("Criar uma String[S4] inverter as letras de uma frase...\n\n");
            if(OK == TRUE)
                {
                    printf("Lista S4 criadas com sucesso. \n");
                }
                printf("\n\n");
            printf("insira a String:\n");
            scanf("%c",&c);
            if(OK == TRUE)
                {
                    OK = testavazio(S4);

                        if(OK == TRUE)
                            {
                                    for(i=0; i<=200 ;i++)
                                        {
                                                   if(caracter!='.')
                                                {
                                                    scanf("%c",&c);
                                                    caracter = c;
                                                            if(caracter == ' ')
                                                                    {
                                                                        contpalavra++;
                                                                    }

                                                    OK = inserirItem(&S4,caracter);
                                                            if(OK == TRUE)
                                                            {
                                                            //printf("inserção[%i] realizada com sucesso.\n",i);
                                                            }else
                                                                {
                                                                    printf("inserção[%i] falhou.\n",i);
                                                                }
                                                    }else
                                                {
                                                contpalavra++;
                                                break;
                                                }

                                        }
                            }
                                }else
                                    {
                                    system("cls");
                                    printf("Ocorreu um erro na criação da lista S4.\n");
                                    }
            inverteFrase(S4);

      }
        if(opcao == 6)
        {
            i = 0;
            c = '\0';
            system("cls");
            OK = initString(&S1);
            OK1 = initString(&S2);
            OK2 = initString(&S3);
            printf("\n\n");
            printf("Criar S1, S2 e concatena-las em S3...\n\n");
            if((OK == TRUE)&&(OK1 == TRUE)&&(OK2 == TRUE))
                {
                    printf("Lista S1,S2 e S3 criadas com sucesso. \n");
                }
            printf("\n\n");
            printf("insira a String[S1]:\n");
            scanf("%c",&c);
            if(OK == TRUE)
                {
                    OK = testavazio(S1);
                      if(OK == TRUE)
                            {
                                      for(i=0; i<=200 ;i++)
                                        {

                                                   if(caracter!='.')
                                                {
                                                    scanf("%c",&c);
                                                    caracter = c;
                                                            if(caracter == ' ')
                                                                    {
                                                                        contpalavra++;
                                                                    }

                                                    OK = inserirItem(&S1,caracter);
                                                            if(OK == TRUE)
                                                            {
                                                            printf("inserção[%i] realizada com sucesso.\n",i);
                                                            }else
                                                                {
                                                                    printf("inserção[%i] falhou.\n",i);
                                                                }
                                                    }else
                                                {
                                                contpalavra++;
                                                break;
                                                }

                                            }
                                }else
                                    {
                                    system("cls");
                                    printf("Ocorreu um erro na criação da lista S2.\n");
                                    }
            printf("\n\n");
            printf("\n\n");
            contpalavra = 0;
            caracter = '\0';
            printf("insira a String[S2]:\n");
            scanf("%c",&c);
            if(OK1 == TRUE)
                {
                    OK = testavazio(S2);
                      if(OK == TRUE)
                            {
                                      for(i=0; i<=200 ;i++)
                                        {
                                                   if(caracter!= 46)
                                                {
                                                    scanf("%c",&c);
                                                    caracter = c;
                                                            if(caracter == ' ')
                                                                    {
                                                                        contpalavra++;
                                                                    }

                                                    OK = inserirItem(&S2,caracter);
                                                            if(OK == TRUE)
                                                            {
                                                            printf("inserção[%i] realizada com sucesso.\n",i);
                                                            }else
                                                                {
                                                                    printf("inserção[%i] falhou.\n",i);
                                                                }
                                                }else
                                                {
                                                contpalavra++;
                                                break;
                                                }

                                            }
                                }else
                                    {
                                    system("cls");
                                    printf("Ocorreu um erro na criação da lista S1.\n");
                                    }


                    printf("\n\n");
                    printf("\n\n");
                    }else
                    {
                    printf("erro na criacao da copia da lista.\n");
                    }


         OK = copiaString(&S1,&S3);
         OK1 = copiaString(&S2,&S3);


         if ((OK == TRUE)&&(OK1== TRUE))
         {
          printf("\n\n");
          imprimeLista(S3);
          printf("\n\n");
         }else
         {
          printf("\n\n");
          printf("Ocorreu um erro.\n");
          printf("\n\n");
         }
        }
        }


        if(opcao == 7)
        {
            i = 0;
            c = '\0';
            system("cls");
            OK = initString(&S1);
            OK1 = initString(&S2);
            printf("\n\n");
            printf("Criar S1, S2 intercala-las ...\n\n");
            if((OK == TRUE)&&(OK1 == TRUE))
                {
                    printf("Lista S1 e S2 criadas com sucesso. \n");
                }
            printf("\n\n");
            printf("insira a String[S1]:\n");
            scanf("%c",&c);
            if(OK == TRUE)
                {
                    OK = testavazio(S1);
                      if(OK == TRUE)
                            {
                                      for(i=0; i<=200 ;i++)
                                        {

                                                   if(caracter!='.')
                                                {
                                                    scanf("%c",&c);
                                                    caracter = c;
                                                            if(caracter == ' ')
                                                                    {
                                                                        contpalavra++;
                                                                    }

                                                    OK = inserirItem(&S1,caracter);
                                                            if(OK == TRUE)
                                                            {
                                                            printf("inserção[%i] realizada com sucesso.\n",i);
                                                            }else
                                                                {
                                                                    printf("inserção[%i] falhou.\n",i);
                                                                }
                                                    }else
                                                {
                                                contpalavra++;
                                                break;
                                                }

                                            }
                                }else
                                    {
                                    system("cls");
                                    printf("Ocorreu um erro na criação da lista S2.\n");
                                    }
            printf("\n\n");
            printf("\n\n");
            contpalavra = 0;
            caracter = '\0';
            printf("insira a String[S2]:\n");
            scanf("%c",&c);
            if(OK1 == TRUE)
                {
                    OK = testavazio(S2);
                      if(OK == TRUE)
                            {
                                      for(i=0; i<=200 ;i++)
                                        {
                                                   if(caracter!= 46)
                                                {
                                                    scanf("%c",&c);
                                                    caracter = c;
                                                            if(caracter == ' ')
                                                                    {
                                                                        contpalavra++;
                                                                    }

                                                    OK = inserirItem(&S2,caracter);
                                                            if(OK == TRUE)
                                                            {
                                                            printf("inserção[%i] realizada com sucesso.\n",i);
                                                            }else
                                                                {
                                                                    printf("inserção[%i] falhou.\n",i);
                                                                }
                                                }else
                                                {
                                                contpalavra++;
                                                break;
                                                }

                                            }
                                }else
                                    {
                                    system("cls");
                                    printf("Ocorreu um erro na criação da lista S1.\n");
                                    }


                    printf("\n\n");
                    printf("\n\n");
                    }else
                    {
                    printf("erro na criacao da copia da lista.\n");
                    }

           imprimeLista(S1);
            printf("\n\n");
            printf("\n\n");
           imprimeLista(S2);
            printf("\n\n");
            printf("\n\n");
           intercalarFrases(S1,S2);

        }


        }

        if(opcao == 8)
        {
            int i,contpalavra = 0;
            c = '\0';
            caracter='\0';
            system("cls");
            OK = initString(&S1);
            printf("\n\n");
            printf("Inverter as palavras...\n\n");
            if(OK == TRUE)
                {
                    printf("Lista criadas com sucesso. \n");
                }
                printf("\n\n");
            printf("insira a String:\n");
            scanf("%c",&c);
            if(OK == TRUE)
                {
                    OK = testavazio(S1);

                        if(OK == TRUE)
                            {
                                    for(i=0; i<=200 ;i++)
                                        {
                                                   if(caracter!='.')
                                                {
                                                    scanf("%c",&c);
                                                    caracter = c;
                                                            if(caracter == ' ')
                                                                    {
                                                                        contpalavra++;
                                                                    }

                                                    OK = inserirItem(&S1,caracter);
                                                            if(OK == TRUE)
                                                            {
                                                            //printf("inserção[%i] realizada com sucesso.\n",i);
                                                            }else
                                                                {
                                                                    printf("inserção[%i] falhou.\n",i);
                                                                }
                                                    }else
                                                {
                                                contpalavra++;
                                                break;
                                                }

                                        }
                            }
                                }else
                                    {
                                    system("cls");
                                    printf("Ocorreu um erro na criação da lista S4.\n");
                                    }
           inverterPalavras(S1);

      }


        if(opcao == 9)
        {
            int i,contpalavra = 0;
            c = '\0';
            caracter='\0';
            system("cls");
            OK = initString(&S1);
            printf("\n\n");
            printf("Inverter as letras das palavras...\n\n");
            if(OK == TRUE)
                {
                    printf("Lista criadas com sucesso. \n");
                }
                printf("\n\n");
            printf("insira a String:\n");
            scanf("%c",&c);
            if(OK == TRUE)
                {
                    OK = testavazio(S1);

                        if(OK == TRUE)
                            {
                                    for(i=0; i<=200 ;i++)
                                        {
                                                   if(caracter!='.')
                                                {
                                                    scanf("%c",&c);
                                                    caracter = c;
                                                            if(caracter == ' ')
                                                                    {
                                                                        contpalavra++;
                                                                    }

                                                    OK = inserirItem(&S1,caracter);
                                                            if(OK == TRUE)
                                                            {
                                                            //printf("inserção[%i] realizada com sucesso.\n",i);
                                                            }else
                                                                {
                                                                    printf("inserção[%i] falhou.\n",i);
                                                                }
                                                    }else
                                                {
                                                contpalavra++;
                                                break;
                                                }

                                        }
                            }
                                }else
                                    {
                                    system("cls");
                                    printf("Ocorreu um erro na criação da lista S4.\n");
                                    }
           inverterLetraPalavras(S1);

      }


}
// ***********************************************
// ***********************************************
// ***********************************************
void inverterPalavras(Lista S)
{
char frase[100];
char frase1[100];
char c;
char c1;
int pos,i = 0;
int cont = 0;
int j = 0;
bool OK;
Lista S1;



        if ( S.inicio == NULL)
        printf("Lista Vazia\n");
        else {

        tNo* posAtual = S.inicio;

        do{
            frase[i] = posAtual->caractere;
            posAtual = posAtual->prox;
            i++;
            pos++;
        }while(posAtual != NULL);

        }




        tNo* posAtual = S.inicio;
        do{

            frase[i] = posAtual->caractere;
            //printf("%c",frase[i]);
            posAtual = posAtual->prox;
            i++;
            pos++;
        }while(posAtual != NULL);


        pos=S.tam;
        initString(&S);
         do // inverte a frase
        {
          c = frase[pos];
          if(frase[pos] == 91)
          {
          inserirItem(&S,' ');
          }else
          {
          inserirItem(&S,frase[pos]);
          }
           pos--;
        }while((pos >= 0 )||( c >= 48)&&(c <= 125));



        pos,i =0;
        pos = S.tam;
        initString(&S);
        do{
          c=frase[i];
                if((c == ' ')||(c== '.'))
                    {
                        j = i-1;

                            do{

                                if(frase[j]== 91)
                                {
                                inserirItem(&S,' ');
                                j--;
                                }else
                                {
                                inserirItem(&S,frase[j]);
                                j--;
                                }

                                }while(( frase[j] >= 48)&&(frase[j] <= 125));


                        if(c == 91)
                        {
                        inserirItem(&S,' ');
                        i++;
                        }else
                        {
                        inserirItem(&S,c);
                        i++;
                        }

                    }else
                    {
                     i++;
                    }


          }while(i<=pos);

             printf("\n\n");
            //imprimeLista(S);
            printf("\n");

             printf("\n\n");
            inverteFrase(S);
            printf("\n");

}