#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int count=0;
int main(){
int n;
scanf(" %d",&n);
char *s = (char *)malloc(10240 * sizeof(char));
scanf(" %s",s);
int length=strlen(s);
char array[length+1];
int k;
scanf(" %d",&k);
while(*s!='\0')
{
char a= *s + k;
if(a>90 && *s<=90)
{
a=65+(k-1);
array[count]=a;
}
else if(a>122 && *s<=122)
{
a=97+(k-1);
array[count]=a;
}
else if (a >=0 && a<=64)
{
array[count]=a;
}
else if(a>=123 && a<=126)
{
array[count]=a;
}
count++;
s++;
}
array[count+1]='\0';
printf("%s",array);
return 0;
}
아래의 코드에서 암호화되지 않은 각 문자는 알파벳순으로 나열된 후 'k'공백이있는 문자로 바뀝니다. 알파벳은 대소 문자를 구분하고 원형으로 생각하십시오. 'k'가 알파벳 끝을 지나치면 처음으로 되돌아갑니다 (예 : 'z'다음의 문자는 'a', 'Z'다음의 문자는 'A').Caesar Cipher Encryption 알고리즘의 출력으로 가비지 문자를주는 아래의 코드는 무엇입니까?
어디서 잘못 될지 알 수 없으므로 입력 가능한 모든 문자 시퀀스에 대해 null이 인쇄됩니다. 특수 기호는 암호화 된 문자열에서 변경되지 않습니다.
['malloc()'과 가족을 'C'로 반환하지 않는 이유에 대한이 토론을보십시오.] (http://stackoverflow.com/q/) 605845/2173917). –
... 특히' '을 포함하지 않았으므로'malloc'을 올바르게 사용하려면 필수 항목입니다. 그리고 당신의'array []'는 크기가 작다. 터미네이터 공간을 남기지 않습니다. –
WhozCraig
포함 시키더라도 원하는대로 작동하지 않으며 출력이 변경되지 않습니다. – stackuser