Writing a program that asks for user input of 3 strings. The program then takes each string and counts the number of digits, lower case letters, and punctuation. Program compiles but after the user enters the first string, there is a segmentation fault and the program crashes. When I run the program this is the result:
Enter the first string :1 Enter the second string :Enter the second string :2 Segmentation fault
Not sure exactly what is happened but any help would be awesome! Thanks.
#include <stdio.h>
#include <string.h>
int countDigit(char *s);
int countLower(char *s);
int countPunct(char *s);
int main (void)
{
        int digit, lower, punct;
        char *first;
        char *second;
        char *third;
        char *c;
        printf("Enter the first string\n:");
        scanf("%99s", first);
        printf("Enter the second string\n:");
        scanf("%99s", second);
        printf("Enter the second string\n:");
        scanf("%99s", third);
        digit=countDigit(first);
        lower=countLower(first);
        punct=countPunct(first);
        printf("There are %d digits, %d lower case letters and %d punctuation chars in a\n", digit, lower, punct);
        digit=countDigit(second);
        lower=countLower(second);
        punct=countPunct(second);
        printf("There are %d digits, %d lower case letters and %d punctuation chars in b\n", digit, lower, punct);
        digit=countDigit(third);
        lower=countLower(third);
        punct=countPunct(third);
        printf("There are %d digits, %d lower case letters and %d punctuation chars in c\n", digit, lower, punct);
}
int countDigit(char *s)
{
        int count = 0;
        char temp;
        while(*s !=0)
        {
                temp = *s;
                if (isdigit(temp))
                {
                        count++;
                }
                s++;
        }
        return count;
}
int countLower(char *s)
{
        int count = 0;
        char temp;
        while (*s !=0)
        {
                temp = *s;
                if (islower(temp))
                {
                        count++;
                }
                s++;
        }
        return count;
}
int countPunct(char *s)
{
        int count = 0;
        char temp;
        while (*s !=0)
        {
                temp = *s;
                if (ispunct(temp))
                {
                        count++;
                }
                s++;
        }
        return count;
}
 
     
     
    