1answer.
Ask question
Login Signup
Ask question
All categories
  • English
  • Mathematics
  • Social Studies
  • Business
  • History
  • Health
  • Geography
  • Biology
  • Physics
  • Chemistry
  • Computers and Technology
  • Arts
  • World Languages
  • Spanish
  • French
  • German
  • Advanced Placement (AP)
  • SAT
  • Medicine
  • Law
  • Engineering
pantera1 [17]
3 years ago
13

Write a C program that counts the number of vowels in a word. The C program reads words from an input file and then stores in an

output file the word and its number of vowels. At the end it also stores the word with the most and the word with the fewest vowels. Extra bonus: Your program should handle the situation in which there are several words with the maximum and minimum number of vowels.
Computers and Technology
1 answer:
polet [3.4K]3 years ago
5 0

Answer:

Explanation:

The following code is written in C and does what the question requires. It uses the input file reads it and outputs the number of vowels to the file called output.dat

#include <ctype.h>

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

int str_count_in_chars(char *start, char *end, char *chars) {

   int count = 0;

   for (; start != end; count += !!strchr(chars, *(start++)));

   return count;

}

void str_swap_in_chars(size_t str_len, char **str, char *chars) {

   for (int front = 0, back = str_len - 1; front < back; front++) {

       if (strchr(chars, (*str)[front])) {

           for (; !strchr(chars, (*str)[back]); back--);

           char tmp = (*str)[front];

           (*str)[front] = (*str)[back];

           (*str)[back--] = tmp;

       }

   }

}

char *file_to_str(FILE *fin) {

   int buf_len = 64;

   char buf[buf_len];

   char *str = malloc(buf_len);

   str[0] = '\0';

   for (int i = 1; fgets(buf, buf_len, fin); i++) {

       if (!(str = realloc(str, i * buf_len))) {

           fprintf(stderr, "%s:%d realloc failed\n", __FILE__, __LINE__);

           exit(1);

       }

       strcat(str, buf);

   }

   return str;

}

int main() {

   char *vowels = "aeiou";

   FILE *fin = fopen("input.dat", "r");

   FILE *fout = fopen("output.dat", "w");

   if (!fin || !fout) {

       fprintf(stderr, "%s:%d fopen failed\n", __FILE__, __LINE__);

       exit(1);

   }

   char *words = file_to_str(fin);

   fclose(fin);

   int words_len = strlen(words);

   for (int i = 0; i < words_len;) {

       if (isspace(words[i])) {

           fputc(words[i++], fout);

           continue;

       }

       int start = i;

       for (; i < words_len && !isspace(words[i]); i++);

       char *word = words + start;

       int word_len = i - start;

       int vowel_count = str_count_in_chars(word, words + i, vowels);

       if (vowel_count % 2 == 0) {

           str_swap_in_chars(word_len, &word, vowels);

       }

       fprintf(fout, "%.*s_%dvow", word_len, word, vowel_count);

   }

   fclose(fout);  

   free(words);

   return 0;

}

You might be interested in
Which is an unethical use of technology and resources at the workplace?
Greeley [361]
The answer is B. sharing a coworker’s performance scores with your colleagues
6 0
4 years ago
Read 2 more answers
When you complete a form online with your name, address, and credit card information in order to make a purchase, you are giving
mafiozo [28]

Answer:

Structured

Explanation:

A data dictionary can be defined as a centralized collection of information on a specific data such as attributes, names, fields and definitions that are being used in a computer database system.

In a data dictionary, data elements are combined into records, which are meaningful combinations of data elements that are included in data flows or retained in data stores.

This ultimately implies that, a data dictionary found in a computer database system typically contains the records about all the data elements (objects) such as data relationships with other elements, ownership, type, size, primary keys etc. These records are stored and communicated to other data user when required or needed.

A relational database can be defined as a type of database that is structured in a manner that there exists a relationship between its elements.

Hence, when a user completes a form online by providing his or her name, address, and credit card information in order to make a purchase, he or she is giving the company structured data (pre-defined and formatted to a set structure) that can be used to make up (populate) a relational database or spreadsheet.

A spreadsheet can be defined as a file or document which comprises of cells in a tabulated format (rows and columns) typically used for formatting, arranging, analyzing, storing, calculating and sorting data on computer systems.

3 0
3 years ago
What is the purpose of a search engine?
soldi70 [24.7K]
The purpose is to look for the topic that you need to ask a question and to find/get to a website you want to go to. hope this helped :)
4 0
4 years ago
Read 2 more answers
Inherent flaws in system software code are called:
Lana71 [14]
Hiiiiiiiiiiiuiiiiiuuuuuuu
4 0
4 years ago
A technician is troubleshooting a computer that will not communicate with any hosts on the local network. While performing a vis
tangare [24]

Answer:

Assuming that D is correct, the other answer is C.

Explanation:

<em>I used Dell Support to confirm this.</em>

It states that if the lights are off, it is not detecting the network and no connection is in place. You would want to confirm the NIC is enabled in the BIOS (as C states).

I hope this helps!

8 0
3 years ago
Other questions:
  • _______ ______ is the creation of a computer program by utilizing pictorial elements. Question 36 options: A. Assembly Programmi
    7·2 answers
  • Some people are unable to arrange six matches to form four equilateral triangles because they fail to consider a three - dimensi
    6·1 answer
  • Clicking on the Spelling &amp; Grammar button is one way to correct a spelling error in Word. Please select the best answer from
    7·2 answers
  • The entirety of a packet at one layer becoming the payload section at another layer is known as
    8·2 answers
  • Give two separate print statements: one will print your name, the other will print your major. Ensure that both will print on th
    15·1 answer
  • Indicate the time efficiency classes of the three main operations (i.e., FindMax, DeleteMax, and Insert) of the priority queue i
    11·1 answer
  • A tornado destroyed many
    6·2 answers
  • Which is a connectionless protocol in the transport layer? What are the small chunks of data called?
    12·2 answers
  • Draw at least 15 fabric/garment care labels on a piece of paper to be submitted the following week
    5·1 answer
  • Most computers include a network card designed to connect a computer to the net using standard telephone service. True or False?
    11·1 answer
Add answer
Login
Not registered? Fast signup
Signup
Login Signup
Ask question!