Ir ao conteúdo
  • Cadastre-se
NeguinDaVinch

C matriz e manipulaçao e caracteres

Recommended Posts

#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <string.h>
#include <ctype.h>
#include <conio.h>
#include <time.h>

void codifica(void);
void descodifica(void);

int main ()
{
	int escolha;
	do{
		system("cls");
		
		printf("Escolha uma das opções: \n\n");
		printf("1 - Codificar;\n");
		printf("2 - Descodificar;\n");
		printf("3 - Sair;\n\n");
		scanf("%d",&escolha);
		fflush(stdin);
		
		switch(escolha)	
		{
			case 1: codifica();
			break;
			case 2: descodifica;
			break;	
		}	
	}while(escolha != 3);
}

void codifica(void)
{
	char frase[25];
	int chave,tamanho_frase,cont,i,j;
	
	system("cls");
	
	printf("Digite a frase a ser criptografada: ");
	gets(frase);
	
	while(chave < 1 || chave >=25)
	{
		printf("Digite a frase a ser utilizada (<=25): ");
			scanf("%d",&chave);
			fflush(stdin);
	}
	
	tamanho_frase=strlen(frase);
	
	for(cont=0;cont<tamanho_frase;cont++)
	{
		frase[cont]=frase[cont] + chave;
	}
	
	// nesse momento eu quero jogar a frase criptograda em uma matriz e fazer a matriz transposta
	
	printf("\n\nFRASE CRIPTOGRAFADA: %s",frase);
	
	getchar();
}

saudações!

 

estou com um algoritmo de uma cifra de substituição funciona assim:

1 - o usuário digita uma frase qualquer;

2 - ele escolhe o valor chave e de acordo com esse valor o algoritmo aloca a letra n posições a frente conforme a chave escolhida.

 

Exemplo:

 

° NARUTO;

° chave 3;

° QDUXWR;

 

ate aqui tudo bem o algoritmo funciona;

 

O que eu quero agora e um exemplo de como pegar a frase,  jogar em uma mariz quadrada de modo que cada letra fica em um índice;

 

Exemplo:

 

|  Q  |  D |  U  |

|  X   | W |  R  |

|       |      |      |

 

como a matriz e quadrada eu ainda teria que usar a função srand para completar o restante com letras aleatórias;

 

e depois fazer a matriz transposta:

|  Q  |  X |    |

|  D  | W |    |

|  U  |  R |    |

 

 

  • Curtir 1
  • Confuso 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, tudo certo!?

Então ...

 

Falta mais especificações. Entretanto, posso vos dizer que não tem sentido nenhum nisso, e só faça porque posso.

int main( void )
{	char naruto[ 16 ]= { "Naruto" },        /*< aqui um vetor e aqui */
	     (* array)[ 4 ]= ((void *) naruto); /*< é matriz a partir do vetor */

	if( naruto[ 5 ] == array[ 1 ][ 1 ] )
	{	printf( "Sim: o == o \n" );
	}
	return 0;
}

 

2 horas atrás, NeguinDaVinch disse:

O que eu quero agora e um exemplo de como pegar a frase,  jogar em uma mariz quadrada de modo que cada letra fica em um índice;

 

 

  • Curtir 2

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não tem segredo nenhum, @NeguinDaVinch.

PARA STRING: "ABCXYZ" que tem 6 elemento o quadrado mais próxima é 9 ( 3 x 3 ).
-------------------------------------------------------------------------------
  
|	STRING[0]	| 	STRING[3]	|	?	|

|	STRING[1]	|	STRING[4]	|	?	|

|	STRING[2]	|	STRING[5]	|	?	|

 

Basta percorrer a matriz colunas por linhas enquanto atribuir o valor no vetor linearmente na posição a(ij) correspondente da matriz.

 

Estou sem tempo para codificar isso para você.

 

 

  • Curtir 1
  • Amei 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×