Need help understanding each step of the following code. This is the prompt: In c programming capitalize the first occurrence of each vowel (a,e,i,o,u) . For example apple = ApplE; I also want to understand how to start an assignment like this in the future.    #include #include #include // Return a newly allocated copy of original // with the first occurrence of each vowel capitalized char* CapVowels(char* original) { int a = 1, e = 1, i = 1, o = 1, u = 1; int count = 0; char c;     while (original[count]) ++count; char* modified = (char *) malloc(sizeof(char) * (1+count)); for (int j=0; j

Database System Concepts
7th Edition
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Chapter1: Introduction
Section: Chapter Questions
Problem 1PE
icon
Related questions
Question

Need help understanding each step of the following code. This is the prompt: In c programming capitalize the first occurrence of each vowel (a,e,i,o,u) . For example apple = ApplE;  I also want to understand how to start an assignment like this in the future. 

 

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

// Return a newly allocated copy of original
// with the first occurrence of each vowel capitalized
char* CapVowels(char* original) {
  int a = 1, e = 1, i = 1, o = 1, u = 1;
  int count = 0;
  char c; 
  
  while (original[count]) ++count;
  char* modified = (char *) malloc(sizeof(char) * (1+count));
  for (int j=0; j<count; j++) {
    c =original[j];
     if (c =='a' || c == 'A') {
        if (a ==1){
           a =0;
           c='A';
        }
     }else if (c =='e' || c == 'E') {
        if (e ==1){
           e =0;
           c='E';
        }
     }else if (c =='i' || c == 'I') {
        if (i ==1){
           i =0;
           c='I';
        }
     }else if (c =='o' || c == 'O') {
        if (o ==1){
           o =0;
           c ='O';
        }
     }else if (c =='u' || c == 'U') {
        if (u ==1){
           u =0;
           c ='U';
        }
     }
     modified[j] = c;
  }
  modified[count] ='\0';
  return modified; 
}

int main(void) {
   char userCaption[50];
   char* resultStr;
   scanf("%s", userCaption);

   resultStr = CapVowels(userCaption);

   printf("Original: %s\n", userCaption);
   printf("Modified: %s\n", resultStr);
   
   // Always free dynamically allocated memory when no longer needed
  free(resultStr);
   
   return 0;
}

 

 

Expert Solution
steps

Step by step

Solved in 3 steps with 4 images

Blurred answer
Knowledge Booster
Datatypes
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
Recommended textbooks for you
Database System Concepts
Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education
Starting Out with Python (4th Edition)
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
C How to Program (8th Edition)
C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON
Database Systems: Design, Implementation, & Manag…
Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning
Programmable Logic Controllers
Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education