In: Computer Science
(In C)
(1) Prompt the user for a string that contains two strings separated by a comma.
Examples of strings that can be accepted:
Jill, Allen
Jill , Allen
Jill,Allen
Ex:
Enter input string: Jill, Allen
(2) Report an error if the input string does not contain a comma.
Continue to prompt until a valid string is entered. Note: If
the input contains a comma, then assume that the input also
contains two strings.
Ex:
Enter input string: Jill Allen Error: No comma in string. Enter input string: Jill, Allen
(3) Extract the two words from the input string and remove any
spaces. Store the strings in two separate variables and output the
strings.
Ex:
Enter input string: Jill, Allen First word: Jill Second word: Allen
(4) Using a loop, extend the program to handle multiple lines of
input. Continue until the user enters q to quit.
Ex:
Enter input string: Jill, Allen First word: Jill Second word: Allen Enter input string: Golden , Monkey First word: Golden Second word: Monkey Enter input string: Washington,DC First word: Washington Second word: DC Enter input string: q
Code Given:
#include
#include
int main(void) {
/* Type your code here. */
return 0;
}
#include
#include
#include
#define MAX_LIMIT 50
int checkComma(char *input)
{
int flag = 0;
for(int i = 0; i < strlen(input); i++)
{
if(input[i] == ',')
{
flag = 1;
break;
}
}
return flag;
}
int main(void)
{
char input[MAX_LIMIT];
char *words[2];
char delim[] = ", ";
printf("\n");
do
{
printf("Enter input string: ");
fgets(input, MAX_LIMIT, stdin);
size_t ln = strlen(input) - 1;
if (*input && input[ln] == '\n')
input[ln] = '\0';
if(strcmp(input, "q") == 0)
{
printf("Thank you...Exiting\n\n");
exit(1);
}
else
{
if(checkComma(input) == 0)
{
printf("No comma in string.\n\n");
}
else
{
char *ptr = strtok(input, delim);
int count = 0;
while(ptr != NULL)
{
words[count++] = ptr;
ptr = strtok(NULL, delim);
}
printf("First word: %s\n", words[0]);
printf("Second word: %s\n\n", words[1]);
}
}
}while(strcmp(input, "q") != 0);
return 0;
}