Tamanho de retornar o tamanho incorreto da matriz [duplicado]
Duplicata Possível:
Tamanho de uma matriz na linguagem de programação C?
Eu tenho trabalhado com C para me familiarizar melhor com ele e acho que talvez tenha me deparado com um problema de inicialização / ponteiro que não tenho certeza de como resolver. O programa abaixo é uma implementação do ROT13, então ele pega uma string de entrada e desloca cada letra por 13, resultando no texto cifrado. A saída do meu programa exibe o turno correto, mas não funciona por mais de 4 caracteres, o que me faz pensar se sizeof está sendo usado incorretamente. Qualquer outra sugestão é apreciada, tenho certeza que já estraguei algumas coisas neste momento.
#include <stdio.h>
#include <string.h>
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);
}