Ir para conteúdo

Arquivado

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

flavia_oliv

Erro na passagem de parâmetro

Recommended Posts

Estou tentando fazer o algoritmo da cifra de cesar, mas estou com um problema ao tentar passar uma string para função.

 

54 16 C:\Aulas Linguegem C\Cifra de Cesar\cesar.c [Error] incompatible types when assigning to type 'char[100]' from type 'char'

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

char cFraseOriginal[], cFraseCifrada[];
char aTabela[26];
int nChave;


void CarregaTabela(){
	int x;
	aTabela[0] = ' ';
	for(x=1; x<=26; x++){
		aTabela[x] = (64+x);
	}
}

int LocalizaPosicaoTabela(char cLetra){
	int x;
	do{
		x=x+1;
	}while((x<27) && (cLetra!=aTabela[x]));
	return (x);
}

char Descriptografa(const char cFrase[], int nSeguranca){
	int x, nCodigo, nCodCifrado, tam;
	char cLetra, cCifra, cRetorno;
	
	cRetorno = 0;
	nSeguranca = (27 - nSeguranca);

	for(x=1; x<=100; x++){
		cLetra = cFrase[x];// strcpy (cFrase, x,1); // verificar
		nCodigo = LocalizaPosicaoTabela(cLetra);
		nCodCifrado = (nCodigo + nSeguranca) % 27;
		cCifra = aTabela[nCodCifrado];
		cRetorno = cRetorno + cCifra;
	}
	return (cRetorno);
}



int main(int argc, char *argv[]) {
	system("cls");
	int i;
	CarregaTabela();
	printf("Digite uma frase: ");
	gets(cFraseOriginal);
	printf("Informe a chave de segurança: ");
	scanf("%d", &nChave);
	cFraseCifrada = Descriptografa (cFraseOriginal, nChave); // ESTÁ DANDO ERRO AQUI
	
	printf("Frase descriptografada é: %s", cFraseCifrada);
	

	return 0;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você precisa indicar o índice do vetor de char que vai receber o retorno da função.

 

Recomendo que você que declare um tamanho para os vetores cFraseOriginal e cFraseCifrada, caso contrario, assumiram tamanho 1. Não utilize a função gets.

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.