C中的奇偶校验位

所以我试图用C编写一个脚本来向我展示奇偶校验位。基本上,我需要输入转换后的字符的二进制数,并且作为输出,我应该具有输入+ 1或0(1/0是奇偶校验位。0是偶数,1是不均匀的)。我就是无法正常工作。我要么得到相同的输入,要么出现一些疯狂的错误。有人可以帮我吗?谢谢

这是剧本

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

int main (){    
   char msg_bit_input[128];    
   char msg_bit_output[128];    
   char caruno='1';    
   int i;    
   int one; 
   printf("Insert the byte: "); 
   scanf("%s", msg_bit_input);
   strcpy (msg_bit_output, msg_bit_input); 
   for(i=0;i<8;i++){        
       if(msg_bit_input[i]==caruno){            
           one--;
       }
   }

   if(one%2==0){        
       //byte is even        
       strcat (msg_bit_output, msg_bit_input);    
   } else if(one%2==1){
       //byte is uneven      
       strcat (msg_bit_output, msg_bit_input);
   }
   printf("The result is: %s", msg_bit_output);    
   return (EXIT_SUCCESS); 
}