Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

invictusum7

Comparação entre char

Recommended Posts

Primeiramente, boa tarde a todos. Me sinto mal em já aparecer por aqui pedindo a ajuda de vocês, mas é um caso de vida ou morte na faculdade, e eu apenas estou aprendendo a programar em C#, sei fazer pouca coisa em C.

 

O problema é o seguinte:

 

Eu tenho um vetor char chamado alfa, e o outro vetor, chamado mensagem.

O vetor alfa contém as 26 letras do alfabeto, e o vetor mensagem, contém algo digitado pelo usuário, com um máximo de até 1000 caractéres.

 

Eu preciso fazer com que, cada caractére da variável mensagem, seja comparada à cada caractére da variável alfa, e que, quando for verdadeiro (ou seja, quando forem iguais ambos os caractéres), a posição desse caractére (já que é um vetor) na variável alfa, seja jogado em outro vetor, por exemplo, um vetor do tipo char, chamado novamensagem.

 

Por exemplo. Tendo uma mensagem "abcde", e meu alfa sendo "abcdefghijklmnopqrstuvwxyz".

Ao comparar mensagem[0] com alfa[0], ambos serão "a", então, como "a" ocupa a 1ª posição no vetor,

a 1ª posição do vetor novamensagem[0], deverá ter o valor 1, em seguida, ele irá comparar, mensagem[0] com alfa[1], alfa[2], e assim por diante, mas como não serão mais iguais, não retornará mais nenhum valor.

E assim por diante, até alfa[4], que será a letra "e", que nesse caso, terá que retornar o valor 5, que é a posição da letra "e" no vetor alfa..

 

Agradeço desde já por qualquer ajuda.

 

Segue abaixo meu código. Só preciso implementar esta função.

 

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>

int main (void)
{
	/*declaração de variáveis do tipo char*/
	char alfa[27];
	char mensagem[1000];
	int novamensagem[1000];
	int cont = 0;
	int j = 0;
	
	/*atribuição de ponteiro do tipo file, para o arquivo crip.txt, no modo escrita "write"*/
	FILE *file;
	file = fopen("C:/Users/Denis/Desktop/Crip.txt", "w");
	
	printf("Digite sua mensagem:\n");
	/*lê mensagem digitada por usuario, e atribui à variável mensagem*/
	scanf("%[A-Z a-z0-9]", &mensagem); 
		
	/*Conta o número de caractéres do vetor mensagem*/
	while (mensagem[cont] != NULL)
	{
		cont++;
	}
		
		
	
	
	/*atribuição de ponteiro do tipo file, para o arquivo alfa.txt, no modo leitura "read"*/
	FILE *abcd;
	abcd = fopen("C:/Users/Denis/Desktop/alfa.txt", "r");
	
	/*lê conteúdo do arquivo alfa, até o caractere ser nulo, e joga na variável alfa*/
	while (fgets(alfa, 27, abcd) != NULL)
	


for (int abc = 0; abc < 27; abc++)
{
	for (int i = 0; i <= cont; i++)
	{
		if (mensagem[i].Equals(alfa[abc]))
		{
			novamensagem[j] = abc;
			j++;
		}
		else
		{
			j = j;
		}
	}
	
}

	fprintf(file, "%d", novamensagem);
	fclose(file);
	fclose(abcd);
	printf("Sua mensagem foi salva com sucesso.");
	getch();
	return 0;
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.