Ir para conteúdo
Fórum Script Brasil
  • 0

[Dúvida] Intercalar palavras


Edno Muniz

Pergunta

Boa noite.

Primeiramente gostaria de parabenizá-los pelo excelente fórum, não conhecia e aqui sanei algumas dúvidas a respeito da linguagem C.

Estou precisando desenvolve uma palavras cruzadas que, automaticamente intercale as palavras que forem escolhidas como resposta. Não sei como fazer isso em C. Por exemplo:

As palavras: Amizade e Xadrez

No caso, intercalar as palavras automaticamente:

X A D R E Z

...M

...I

...Z

...A

...D

...E

No caso, cada palavra poderia ser um vetor e, no caso, fazer a varredura e criar. Podem me ajudar a solucionar esta dúvida?

Agradeço a atenção.

[ ]' Muniz.

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Para intercalar as palavras você vai precisar fazer a busca de cada caracter de uma palavra na outra palavra, procurando assim pontos em que elas possam ser intercaladas.

Normalmente eu não entrego código pronto mas como é uma lógica interessante resolvi fazer... :rolleyes:

#include <stdio.h>

struct ponto {
    int posH; // posicao horizontal
    int posV; // posicao vertical
};

struct ponto BuscaCruzamento(char *stringH, char *stringV)
{
    struct ponto p; // inicializo com valores invalidos

    for(p.posH = 0; stringH[p.posH]; p.posH++) {
        for(p.posV = 0; stringV[p.posV]; p.posV++) {
            if(stringH[p.posH] == stringV[p.posV]) {
                return p; // achou! retorna posicao atual
            }
        }
    }

    // se chegou aqui, não achou. Carrega posicao invalida
    p.posH = p.posV = -1;

    return p;
}

int main(int argc, char **argv)
{
    struct ponto p;

    if(argc != 3) {
        printf("Sintaxe:\n\t%s <string horizontal> <string vertical>\n", argv[0]);
        return 1;
    }

    p = BuscaCruzamento(argv[1], argv[2]);

    if(p.posH < 0) { // invalido!
        printf("strings não cruzam!\n");
    } else {
        printf("Cruzam em [%d:%d]\n", p.posH, p.posV);
    }

    return 0;
}

Esse programa tem uma função que recebe duas strings e retorna a posição em que elas se cruzam ou retorna -1 como coordenadas para indicar que não se cruzam.

Compile esse programa e passe como parâmetro duas strings: a horizontal e a vertical.

Será exibido na tela o ponto em que elas se cruzam.

Abraços,

Marcelo Utikawa da Fonseca

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...