Question

In: Computer Science

PROGRAM LANGUAGE IN C, PLEASE KEEP IT SIMPLE EVEN IF IT IS REDUNDANT In this problem...

PROGRAM LANGUAGE IN C, PLEASE KEEP IT SIMPLE EVEN IF IT IS REDUNDANT

In this problem you will take a list of names from the user and sort them alphabetically using selection sort.

The code for selection sort for integer is available in the "Lab and Weekly Coding Solution module" in webcourses.

Ask the user how many names the user wants to input. Let's say the number be N.

Then take N number of names and put them in an array of strings.

Then write a function and name it as selection_sort. This function takes an array of strings and sort it alphabetically. The sorting should not be case sensitive.

Then in the main function print the strings in sorted order. After sorting, your code should prompt for a string to search. Based on the input, your program should find all the names containing the given search string as a sub string.

Sample Input/Output (italic texts are part of input)

 
 

Enter how many names: 5

 

Name 1: Torben Pedersen

 

Name 2: Nusair Ahmed

 

Name 3: Mikael

 

Name 4: nasir ahmed

 

Name 5: Mikel

 
 

Sorted Names:

 

mikael

 

mikel

 

nasir ahmed

 

nusair ahmed

 

torben pedersen

 
 

Enter search string: el

 

mikael

 

mikel

Hints:

In order to solve the String problem 1 in repl.it, you can use the selection sort code you have written or the one I have uploaded in weekly coding solutions module.

The concept is very similar to an integer sorting. However, in the case of string, you have to use strcmp function and strcpy function for comparing and swapping strings.

For finding searching sub string, you can use strstr() function of string.h library

Rubric:

Total point 3

Taking input properly: 0.25

Converting string to lower case properly: 0.25

comparing string properly: 0.5 point

Swapping properly: 0.5 point

Performing the sorting properly and call: 1

Finding sub string properly: 0.5

Not passing each test case is -1.

Solutions

Expert Solution

PROGRAM:

#include <stdio.h>
#include <string.h>
#include <ctype.h>
#define MAX_LEN 100

void selectionSort(char arr[][MAX_LEN], int n)
{
int i, j, min_idx;
int k=0;
for(i =0;i<n;i++)
{
int len = strlen(arr[i]);
for(j=0;j<len;j++)
{
arr[i][j]= tolower(arr[i][j]);
}
}
char minStr[MAX_LEN];
for (i = 0; i < n-1; i++)
{
int min_idx = i;
  
strcpy(minStr, arr[i]);
for (j = i+1; j < n; j++)
{
// If min is greater than arr[j]
if (strcmp(minStr, arr[j]) > 0)
{
// Make arr[j] as minStr and update min_idx
strcpy(minStr, arr[j]);
min_idx = j;
}
}

// Swap the found minimum element
if (min_idx != i)
{
char temp[MAX_LEN];
strcpy(temp, arr[i]); //swap item[pos] and item[i]
strcpy(arr[i], arr[min_idx]);
strcpy(arr[min_idx], temp);
}
}
}
  

int main()
{
char arr[20][MAX_LEN];
int n;
char searchStr[MAX_LEN];
printf("Enter how many names: ");
scanf("%d",&n);
for(int i=0;i<n;i++)
{
printf("\nName %d: ",i+1);
scanf(" %[^\n]s",&arr[i]);
}
selectionSort(arr, n);

printf("\nSorted names:\n");
for (int i = 0; i < n; i++)
printf("%s\n\n", arr[i]);
printf("\n\nEnter search string: ");
scanf("%s",searchStr);
printf("\n\n");
for(int i=0;i<n;i++)
{
char* ret;
ret = strstr(arr[i], searchStr);
if(ret)
{
printf("%s\n\n",arr[i]);
}
}
return 0;
}

SCEENSHOTS::


Related Solutions

PROGRAM LANGUAGE IN C NOT C# or C++ KEEP IT SIMPLE EVEN IF IT IS REDUNDANT...
PROGRAM LANGUAGE IN C NOT C# or C++ KEEP IT SIMPLE EVEN IF IT IS REDUNDANT PLEASE. Problem: Driving Function driving(): Write a function driving(), that updates the odometer and fuel gauge of a car. The function will take in a reference to the variables storing the odometer and fuel gauge readings, along with a double representing the miles per gallon (mpg) the car gets and the number of miles the driver intends to go. The function should update the...
USE C++ and please keep program as simple as possible and also comment so it is...
USE C++ and please keep program as simple as possible and also comment so it is easy to understad Create a structure called time. Its three members, all type int, should be called hours, minutes, and seconds. Write a program that prompts the user to enter a time value in hours, minutes, and seconds. This should be in 12:59:59 format. This entire input should be assigned first to a string variable. Then the string should be tokenized thereby assigning the...
C++ program, I'm a beginner so please make sure keep it simple Write a program to...
C++ program, I'm a beginner so please make sure keep it simple Write a program to read the input file, shown below and write out the output file shown below. Use only string objects and string functions to process the data. Do not use c-string functions or stringstream (or istringstream or ostringstream) class objects for your solution. Input File.txt: Cincinnati 27, Buffalo 24 Detroit 31, Cleveland 17 Kansas City 24, Oakland 7 Carolina 35, Minnesota 10 Pittsburgh 19, NY Jets...
Problem statement: You are tasked with writing a simple program that will keep track of items...
Problem statement: You are tasked with writing a simple program that will keep track of items sold by a retail store. We need to keep track of the stock (or number of specific products available for sale). Requirements: The program will now be broken up into methods and store all the inventory in an ArrayList object. The program will be able to run a report for all inventory details as well as a report for items that are low in...
Write the simple shell in C language. Please show some outputs.
Write the simple shell in C language. Please show some outputs.
Please code in C language. Server program: The server program provides a search to check for...
Please code in C language. Server program: The server program provides a search to check for a specific value in an integer array. The client writes a struct containing 3 elements: an integer value to search for, the size of an integer array which is 10 or less, and an integer array to the server through a FIFO. The server reads the struct from the FIFO and checks the array for the search value. If the search value appears in...
C++ Language Problem 2 (Save and Get Info) : Write a program that asks for the...
C++ Language Problem 2 (Save and Get Info) : Write a program that asks for the user's name, phone number, and address. The program then saves all information in a data file (each information in one line) named list.txt. Finally, the program reads the information from the file and displays it on the screen  in the following format: Name: User's Name   Phone Number: User's Phone Number   Address: User's Street Address User's City, State, and Zip Code
Write an assembly language program that corresponds to the following C program ****Please give correct answer...
Write an assembly language program that corresponds to the following C program ****Please give correct answer using Pep/9 machine**** int num1; int num2; ;int main () { scanf("%d", &num1); num2 = -num1; printf("num1 = %d\n", num1); printf("num2 = %d\n", num2); return 0; }
Please use C language and use link list to do this program. This program should ask...
Please use C language and use link list to do this program. This program should ask user to enter two fraction polynomials. Then user chocie if he want add it or multiple it. I need you please to test it to see if it work with these two fraction polynomials 1-  Left Poly Pointer: 1/1x2 + 3/4x + 5/12 2-Right Poly Pointer: 1/1x4 – 3/7x2 + 4/9x + 2/11 AND AFTER ADDING 3- Resulting Poly Pointer: 1/1x4 + 4/7x2 + 43/36x...
Kindly Do the program in C++ language Object Oriented Programming. Objectives  Implement a simple class...
Kindly Do the program in C++ language Object Oriented Programming. Objectives  Implement a simple class with public and private members and multiple constructors.  Gain a better understanding of the building and using of classes and objects.  Practice problem solving using OOP. Overview You will implement a date and day of week calculator for the SELECTED calendar year. The calculator repeatedly reads in three numbers from the standard input that are interpreted as month, day of month, days...
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT