Размер возвращаемой неверной длины массива [дубликата]

Возможный дубликат:

Размер массива на языке программирования 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);

}

Ответы на вопрос(4)

Ваш ответ на вопрос