progs/C2.c
changeset 211 e6e160c7ea33
parent 105 40c51038c9e4
child 215 06cc38192865
equal deleted inserted replaced
210:e8445573c812 211:e6e160c7ea33
       
     1 #include <string.h>
       
     2 #include <stdio.h>
       
     3 #include <stdlib.h>
       
     4 
       
     5 // Since gets() is insecure and produces lots 
       
     6 // of warnings, thereofre I use my own input 
       
     7 // function instead.
       
     8 void get_line(char *dst) {
       
     9   char buffer[8];
       
    10   int i = 0;
       
    11   char ch;
       
    12   while ((ch = getchar()) != '\n') {
       
    13     buffer[i++] = ch;
       
    14   }
       
    15   buffer[i] = '\0';
       
    16   strcpy(dst, buffer);
       
    17 }
       
    18 
     1 int match(char *s1, char *s2) {
    19 int match(char *s1, char *s2) {
     2   while( *s1 != '\0' && *s2 != '\0' && *s1 == *s2 ){
    20   while(*s1 != '\0' && *s2 != '\0' && *s1 == *s2){
     3     s1++; s2++;
    21     s1++; s2++;
     4   }
    22   }
     5   return( *s1 - *s2 );
    23   return( *s1 - *s2 );
     6 }
    24 }
     7 
    25 
     8 void welcome() { printf("Welcome to the Machine!\n"); exit(0); }
    26 void welcome() { printf("Welcome!\n"); exit(0); }
     9 void goodbye() { printf("Invalid identity, exiting!\n"); exit(1); }
    27 void goodbye() { printf("Wrong identity, exiting!\n"); exit(1); }
    10 
    28 
    11 main(){
    29 int main(){
    12   char name[8];
    30   char name[8];
    13   char pw[8]; 
    31   char pw[8]; 
    14 
    32 
    15   printf("login: "); 
    33   printf("login: "); 
    16   get_line(name);
    34   get_line(name);