rendered paste body#include "header.h"
print_result_by_chars(int charCount, char buffer[], int nonAlphaCharCount)
{
int i;
char buffer2[BUFSIZE];
for(i = 0; i < charCount; i++)
{
buffer2[i] = buffer[i];
if(isalpha(buffer[i]) == 0)
{
nonAlphaCharCount++;
}
}
/* terminate it */
buffer2[i] = 0x00;
printf("num of lines is %d", charCount);
printf("Line you entered was %s\n", buffer2);
printf("Number of non-alphabetical Characters was %d\n", nonAlphaCharCount);
}
void sig_term_handler(int sig_num)
{
fprintf(stderr, "count has been killed\n");
exit(1);
}
int main(int argc, char *argv[])
{
struct args these_args;
char ch;
char *num_of_lines;
char buffer[BUFSIZE];
int charCount = 0;
int nonAlphaCharCount = 0;
int i;
int fd_in;
int fd_out;
these_args = parse_input(argc, argv);
fd_in = these_args.input_fd;
fd_out = these_args.output_fd;
num_of_lines = these_args.num_of_lines;
/* setup a signal in case we are killed */
signal(SIGTERM, sig_term_handler);
if(strcmp(num_of_lines, "") != 0)
{
for(i = 1; i < strlen(num_of_lines); i++)
{
/* shift everything one character down */
num_of_lines[i-1] = num_of_lines[i];
/* terminate last character with null */
if(i == (strlen(num_of_lines) - 1))
{
num_of_lines[i] = 0x00;
}
}
charCount = atoi(num_of_lines);
/* illegal argument */
if(charCount <= 0)
{
fprintf(stderr, "Invalid argument!!\n");
exit(2);
}
}
if(fd_in != 0)
{
close(INPUT);
dup(fd_in);
}
if(fd_out != 1)
{
close(OUTPUT);
dup(fd_out);
}
/* read(fd_in, buffer, BUFSIZE); */
scanf("%s", buffer);
if(strcmp(num_of_lines, "") == 0)
{
print_result_by_chars(strlen(buffer), buffer, nonAlphaCharCount);
}
else
{
print_result_by_chars(charCount, buffer, nonAlphaCharCount);
}
}