目前我正在试图在C简单地加密字符的字符串简单字符加密输出额外的字符
#include <stdio.h>
#include <string.h>
void encrypt(char *str, int size);
int main(){
char input[8192];
int length;
printf("INPUT A PHRASE: ");
fgets(input, 8192, stdin);
length = strlen(input) -1;
printf("LENGTH: %d\n", length);
char result[length];
strcat(input, result);
encrypt(result, length);
printf("ENCRYPTION: %s\n", result);
return 0;
}
void encrypt(char str[], int size){
int i;
for(i = 0; i < size ; i++){
str[i] = 'X';
}
}
但是当我去执行输出增加了随机字符代码到最后像下面
INPUT A PHRASE: fg
LENGTH: 2
ENCRYPTION: XXà;ÿ
我很困惑,为什么它在最后加入额外的字符。如果有人可以澄清为什么这个问题继续发生,将不胜感激。
字符串是随后进行了一系列的字符'\ 0'。你的'\ 0'在哪里?另外,那个'strcat'电话打算做什么? – immibis
是的,再看看'strcat'。 'result'数组是未初始化的,所以它包含垃圾,并且将它连接到'input'。 –