Comparar o tamanho de strings é uma função comum na programação da linguagem C, pois ela permite verificar qual delas contém mais caracteres. Tal recurso é muito útil para ordenar dados. Comparar strings requer uma função especial; não use != ou ==.
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 Primeiramente, boa noite a todos. 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; } |