include include include Read before you start Do not modif

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


// Read before you start:
// Do not modify any part of this program that you are given. Doing so may cause you to fail automated test cases.
// You are given a partially complete program. Your job is to complete the functions in order for this program to work successfully.
// You should complete this homework assignment using ASU General and GNU GCC environment.
// All instructions are given above the required functions, please read them and follow them carefully.
// If you modify the function return types or parameters, you will fail the automated test cases.
// You can assume that all inputs are valid. Ex: If prompted for an integer, an integer will be input.
// NOTE: For this assignment, you can assume that all input characters will be lowercase characters.

// Global Macro Values. They are used to define the size of a 5 x 32 two-dimensional array of characters

#define NUM_STRINGS 5
#define STRING_LENGTH 32

// Forward Declarations

void frequency(char **strings, char search_alphabet);
void remove_vowel(char **strings);
void swapStrings(char *string1, char *string2);
void sortStrings(char **strings);
void printStrings(char **strings);


/* Problem 1: Input data (5 points)
Create a text file called inputdata.txt.
Place the file into the same folder as your program.
Enter the following five strings into the text file:
apple
grapes
pineapple
coconut
orange
*/


// Problem 2: frequency (5 points)
// Traverse the 2D array of characters variable \'strings\' and check the frequency of a particular letter or a search_alphabet in a string.
// In order to check the frequency, first you need to read the search_alphabet from the user.
// If the string is \"hello\" and the search_alphabet is l, the code will count the number of \'l\'s in hello.
// The output of the function for the above mentioned case will be 2.
// Note: You must use pointer operations.
void frequency(char **strings, char search_alphabet)
{

}

// Problem 3: remove_vowel (5 points)
// Traverse the 2D array of characters variable \'strings\' and remove all vowels from the string.
// In order to remove all vowel characters, you need to check each letter of the string and decide whether its is a vowel. If so then remove it. If not then check the next character.
// If the string is \"hello\", your result will be hll.
// print the new string without vowel using problem 6.
// Note: You must use pointer operations.
void remove_vowel(char **strings)
{

}

// Problem 4: swapStrings (5 points)
// Swap the strings that are passed as parameters, this function will be used in Problem 5.
// If string1 is \"hello\" and string2 is \"goodbye\", after calling this function, string1 will be \"goodbye\" and string2 will be \"hello\".
// Note: You must use pointer operations.
void swapStrings(char *string1, char *string2)
{

}

// Problem 5: sortStrings (20 points)
// Sort the 5 strings contained in the 2D character array parameter labeled \"strings\".
// Sort the strings based on their ASCII character value (use strcmp to compare strings).
// NOTE: You MUST incorporate your \"swapStrings\" function to recieve full points for this part.
// See the output provided in the word document for example input and output.
// Note: You must use pointer operations.
void sortStrings(char **strings)
{

}

// Problem 6: printStrings (10 points)
// Traverse the 2D character array \"strings\" and print each of the contained strings. Put each string in a separate line.
// Note: You must use pointer operations.
void printStrings(char **strings)
{

}

// You should study and understand how this main function works.
// Do not modify it in any way, there is no implementation needed here.
void main()
{

   char **strings; // will store 5 strings each with a max length of 32
   char search_alphabet;
   char input[STRING_LENGTH];
   int i;
  
   strings = (char **)malloc(sizeof(char *) * NUM_STRINGS);
   for (i = 0; i < NUM_STRINGS; i++)
       *(strings + i) = (char *)calloc(STRING_LENGTH, sizeof(char));
  
   printf(\"Project 3: 2D Character Arrays\ \ \");

   for (i = 0; i < NUM_STRINGS; i++)

   {
       printf(\"Enter the next String: \"); // prompt for string
       fgets(input, sizeof(input), stdin); // store input string
       input[strlen(input) - 1] = \'\\0\'; // convert trailing \'\ \' char to \'\\0\' (null terminator)
       strcpy(strings[i], input); // copy input to 2D strings array
   }

   printf(\"Enter a character for checking its frequency: \"); // prompt for integer
   scanf(\"%c\", &search_alphabet); // store integer

   frequency(strings, search_alphabet);
   remove_vowel(strings);
   printf(\"\ The strings after vowel removal:\ \");
   printStrings(strings);

   sortStrings(strings);

   printf(\"\ Sorted Strings:\ \");

   printStrings(strings);
  
   for (i = 0; i < NUM_STRINGS; i++)
   {
       free(*(strings + i));   // gabage collection
   }
   free(strings);
}

Solution

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

// Read before you start:
// Do not modify any part of this program that you are given. Doing so may cause you to fail automated test cases.
// You are given a partially complete program. Your job is to complete the functions in order for this program to work successfully.
// You should complete this homework assignment using ASU General and GNU GCC environment.
// All instructions are given above the required functions, please read them and follow them carefully.
// If you modify the function return types or parameters, you will fail the automated test cases.
// You can assume that all inputs are valid. Ex: If prompted for an integer, an integer will be input.
// NOTE: For this assignment, you can assume that all input characters will be lowercase characters.
// Global Macro Values. They are used to define the size of a 5 x 32 two-dimensional array of characters
#define NUM_STRINGS 5
#define STRING_LENGTH 32
// Forward Declarations
void frequency(char **strings, char search_alphabet);
void remove_vowel(char **strings);
void swapStrings(char *string1, char *string2);
void sortStrings(char **strings);
void printStrings(char **strings);

/* Problem 1: Input data (5 points)
Create a text file called inputdata.txt.
Place the file into the same folder as your program.
Enter the following five strings into the text file:
apple
grapes
pineapple
coconut
orange
*/

// Problem 2: frequency (5 points)
// Traverse the 2D array of characters variable \'strings\' and check the frequency of a particular letter or a search_alphabet in a string.
// In order to check the frequency, first you need to read the search_alphabet from the user.
// If the string is \"hello\" and the search_alphabet is l, the code will count the number of \'l\'s in hello.
// The output of the function for the above mentioned case will be 2.
// Note: You must use pointer operations.

int check_vowel(char c)
{
switch(c) {
case \'a\':
case \'A\':
case \'e\':
case \'E\':
case \'i\':
case \'I\':
case \'o\':
case \'O\':
case \'u\':
case \'U\':
return 1;
default:
return 0;
}
}
void frequency(char **strings, char search_alphabet)
{

int i,j;
for ( i = 0; i < NUM_STRINGS; ++i)
{
int count=0;
printf(\"Count of character %c in %s\ \",search_alphabet,strings[i]);

for ( j = 0; j < strlen(strings[i]); ++j)
{
if(strings[i][j]==search_alphabet)
count++;
}
printf(\"%d\ \",count);
}

}

// Problem 3: remove_vowel (5 points)
// Traverse the 2D array of characters variable \'strings\' and remove all vowels from the string.
// In order to remove all vowel characters, you need to check each letter of the string and decide whether its is a vowel. If so then remove it. If not then check the next character.
// If the string is \"hello\", your result will be hll.
// print the new string without vowel using problem 6.
// Note: You must use pointer operations.
void remove_vowel(char **strings)
{int i,j,k;

for (k = 0; k < NUM_STRINGS; ++k)
{
int len=strlen(strings[k]);
for(i=0; i<strlen(strings[k]); i++)
{
if(strings[k][i]==\'a\' || strings[k][i]==\'e\' || strings[k][i]==\'i\' ||
strings[k][i]==\'o\' || strings[k][i]==\'u\' || strings[k][i]==\'A\' ||
strings[k][i]==\'E\' || strings[k][i]==\'I\' || strings[k][i]==\'O\' ||
strings[k][i]==\'U\')
{
for(j=i; j<len; j++)
{
strings[k][j]=strings[k][j+1];
}
len--;
}
}
}


}

// Problem 4: swapStrings (5 points)
// Swap the strings that are passed as parameters, this function will be used in Problem 5.
// If string1 is \"hello\" and string2 is \"goodbye\", after calling this function, string1 will be \"goodbye\" and string2 will be \"hello\".
// Note: You must use pointer operations.
void swapStrings(char *string1, char *string2)
{char* temp;
strcpy(temp,string1);
strcpy(string1,string2);
strcpy(string2,temp);
}

// Problem 5: sortStrings (20 points)
// Sort the 5 strings contained in the 2D character array parameter labeled \"strings\".
// Sort the strings based on their ASCII character value (use strcmp to compare strings).
// NOTE: You MUST incorporate your \"swapStrings\" function to recieve full points for this part.
// See the output provided in the word document for example input and output.
// Note: You must use pointer operations.
void sortStrings(char **strings)
{int i,j;
char temp[20];
for(i=0;i<NUM_STRINGS;i++)
for(j=i+1;j<NUM_STRINGS;j++){
if(strcmp(strings[i],strings[j])>0){
strcpy(temp,strings[i]);
strcpy(strings[i],strings[j]);
strcpy(strings[j],temp);
}
}

}

// Problem 6: printStrings (10 points)
// Traverse the 2D character array \"strings\" and print each of the contained strings. Put each string in a separate line.
// Note: You must use pointer operations.
void printStrings(char **strings)
{int i;
for ( i = 0; i < NUM_STRINGS; ++i)
{
printf(\"%s\ \",strings[i] );
}
}

// You should study and understand how this main function works.
// Do not modify it in any way, there is no implementation needed here.
void main()
{
char **strings; // will store 5 strings each with a max length of 32
char search_alphabet;
char input[STRING_LENGTH];
int i;
  
strings = (char **)malloc(sizeof(char *) * NUM_STRINGS);
for (i = 0; i < NUM_STRINGS; i++)
*(strings + i) = (char *)calloc(STRING_LENGTH, sizeof(char));
  
printf(\"Project 3: 2D Character Arrays\ \ \");
for (i = 0; i < NUM_STRINGS; i++)
{
printf(\"Enter the next String: \"); // prompt for string
fgets(input, sizeof(input), stdin); // store input string
input[strlen(input) - 1] = \'\\0\'; // convert trailing \'\ \' char to \'\\0\' (null terminator)
strcpy(strings[i], input); // copy input to 2D strings array
}
printf(\"Enter a character for checking its frequency: \"); // prompt for integer
scanf(\"%c\", &search_alphabet); // store integer
frequency(strings, search_alphabet);
remove_vowel(strings);
printf(\"\ The strings after vowel removal:\ \");
printStrings(strings);
sortStrings(strings);
printf(\"\ Sorted Strings:\ \");
printStrings(strings);
  
for (i = 0; i < NUM_STRINGS; i++)
{
free(*(strings + i)); // gabage collection
}
free(strings);
}

==========================================================================

Output:

akshay@akshay-Inspiron-3537:~/Chegg$ gcc sss.c
akshay@akshay-Inspiron-3537:~/Chegg$ ./a.out
Project 3: 2D Character Arrays

Enter the next String: apple
Enter the next String: pineapple
Enter the next String: coconut
Enter the next String: oranges
Enter the next String: grapes
Enter a character for checking its frequency: e
Count of character e in apple
1
Count of character e in pineapple
2
Count of character e in coconut
0
Count of character e in oranges
1
Count of character e in grapes
1

The strings after vowel removal:
ppl
pnappl
ccnt
rngs
grps

Sorted Strings:
ccnt
grps
pnappl
ppl
rngs

#include <stdio.h> #include <string.h> #include <stdlib.h> // Read before you start: // Do not modify any part of this program that you are gi
#include <stdio.h> #include <string.h> #include <stdlib.h> // Read before you start: // Do not modify any part of this program that you are gi
#include <stdio.h> #include <string.h> #include <stdlib.h> // Read before you start: // Do not modify any part of this program that you are gi
#include <stdio.h> #include <string.h> #include <stdlib.h> // Read before you start: // Do not modify any part of this program that you are gi
#include <stdio.h> #include <string.h> #include <stdlib.h> // Read before you start: // Do not modify any part of this program that you are gi
#include <stdio.h> #include <string.h> #include <stdlib.h> // Read before you start: // Do not modify any part of this program that you are gi

Get Help Now

Submit a Take Down Notice

Tutor
Tutor: Dr Jack
Most rated tutor on our site