目前我正在試圖在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'。 –