Comparação entre char
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;
}Discussão (1)
Carregando comentários...