2017-12-03 8 views
0

안녕하세요 여러분, 사용자가 입력 한 문자를 황제 암호처럼 바꿀 필요가 있습니다. 예를 들어 A는 C, B = D, C = F 될 것 등등하지만 내 출력이 잘못, 그것은 임의의 문자C에서 다른 배열을 사용하여 문자 위치를 어떻게 바꿀 수 있습니까?

를 인쇄
#include <stdio.h> 
#include <stdlib.h> 
#include <conio.h> 
#include <windows.h> 

char codificador(char fraseUsuario[15]){ 
char confereFrase[15]; 
int tamanho = lstrlen(fraseUsuario); 
int cont = 0; 
char alfabeto[27] = {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','x','w','y','z'}; 
char cifraCezar[27] = {'d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','x','w','y','z','a','b','c'}; 



//Passa o valor do vetor original para o vetor comparativo 
while(cont != tamanho){ 
    confereFrase[cont] = fraseUsuario[cont]; 
    cont++; 
    } 
    cont = 0; 
//Codifica a mensagem usando a cifra 
while(cont!= tamanho){ 
    confereFrase[cifraCezar[cont]]; 
    cont++; 
    } 

printf("%s",confereFrase); 



} 



int main(){ 
char mensagemUsuario[50]; 
char fraseUsuario[30]; 
char senha[10]; 
printf("Digite sua mensagem: "); 
fflush(stdin); 
gets(fraseUsuario); 
codificador(fraseUsuario); 


system("pause"); 
return 0; 
} 
+1

"하지만 제대로 작동하지 않습니다"는 ** 유효하지 않습니다 ** 유효한 질문이 – Fureeish

+0

인 이유는 무엇입니까? –

+0

여기에 묻기 전에 프로그램을 디버깅해야하기 때문에. 그렇게하는 동안 논리가 실패한 부분을 파악할 수 있습니다. 당신이 무엇을 어디서 어떻게 다른지 언급하지 않았다는 것을 고려할 때, 나는 당신이 전혀 프로그램을 디버그하지 않았다고 생각한다. – Fureeish

답변

0

힌트 : C에서 모든 것이 정수입니다. 다음과 같이 소문자 만 사용할 수 있습니다. 독자가 대문자에 대한 지원을 추가하고 변환 등을 시도하기 전에 문자가 아닌 입력을 감지하도록 연습하십시오.

char c = getc(STDIN); 
char coded = c+3; 
if(coded > 'z') coded -= 'z'; 
관련 문제