Размер возвращаемой неверной длины массива [дубликата]
Возможный дубликат:
Размер массива на языке программирования C? I '
я возился с C, чтобы лучше познакомиться с ним и подумать, что, возможно, я наткнулся на проблему инициализации / указателя, которую я 'Я не уверен, как решить. Приведенная ниже программа является реализацией ROT13, поэтому она принимает строку ввода и сдвигает каждую букву на 13, что приводит к зашифрованному тексту. Вывод моей программы отображает правильный сдвиг, но он выиграля работаю более чем с 4 символами, что заставляет меня задуматься, неправильно ли используется sizeof. Любые другие предложения приветствуются, яя уверен, что яВ этот момент мы перепутали несколько вещей.
#include
#include
void encrypt(char *);
int main(void){
char input[] = "fascs";
encrypt(input);
return 0;
}
void encrypt(char *input){
char alphabet[] = "abcdefghijklmnopqrstuvwxyz";
printf("Input: %s \n", input);
int inputCount = sizeof(input);
printf("Characters in Input: %i \n\n", inputCount);
//holds encrypted text
char encryptedOutput[inputCount];
//Initialize counters
int i, j = 0;
// loop through alphabet array, if input=current letter, shift 13 mod(26),
// push result to output array, encryptedOutput
for(i = 0; i < inputCount; i++){
for(j = 0; j < 26; j++){
if(input[i] == alphabet[j]){
encryptedOutput[i] = alphabet[(j + 13) % 26];
}
}
}
//Nul Termination for printing purposes
encryptedOutput[i] = '\0';
printf("Rot 13: %s \n\n", encryptedOutput);
}