单声道字母密码无法正常工作

时间:2016-11-23 14:34:30

标签: c encryption

这是我的代码。在C中替换Cipher但是我在这一行收到错误:char *encryption (char cipher_text[]) { 这里不允许使用函数定义。我认为可能“主要”功能不对。我该如何解决? 顺便说一句,我怎样才能为这段代码生成随机字母?非常感谢你。

#include <stdio.h>
#include <stdlib.h>
#include <strings.h>
#include <ctype.h>
#include <string.h>


char *encryption (char cipher_text[]) {
            int i, val, j;
            printf("\n abcdefghijklmnopqrstuvwxyz \n");  

2 个答案:

答案 0 :(得分:0)

您无法在另一个内部定义功能。加密在main中定义:/

答案 1 :(得分:0)

在C中,你不能像在别的情况下在另一个函数中声明一个函数。 这是您编译的代码:

#include <stdio.h>
#include <stdlib.h>
#include <strings.h>
#include <ctype.h>
#include <string.h>

char *encryption (char []);
void *decryption (char []);
char alpha [26]={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
char key[26];


char *encryption (char cipher_text[]) {
int i, val, j;
printf("enter the unique KEY of 26 character:");
scanf("%s", key);
printf("\n abcdefghijklmnopqrstuvwxyz \n");
printf ("%s", key);

for (i=0; i <strlen(cipher_text); i++) 
{
    for (j=0; j<26; j++)
    {
        if (alpha[j]== cipher_text[i]) {
            cipher_text[i]=key[j];
            break;
        }
    }
}

printf ("your message enc: %s", cipher_text);
return cipher_text; 
}

int main ()
{
    int i, key, choice, flag=0;
    char *c_text, msg[255];
    printf("\n Enter plain text:");
    scanf ("%[^\n]", msg);
    encryption(msg);
    return 0;
}

如何生成随机字符的回答为here