C PROGRAM
Write two functions, first and last described as follows; • the function first takes a string s and a character c as arguments and returns a pointer to (i.e. the address of) the first occurrence of the character c in the string s. That is, if s = “A string to be searched” and c = ’e’, then the function first returns a character pointer which is the address of the ’e’ in the word “be”. If the character does not occur in the string s then the value NULL is returned. • the function last takes a string s and a character c as arguments and returns a pointer to (i.e. the address of) the last occurrence of the character c in the string s. That is, if s = “A string to be searched” and c = ’e’, then the function last returns a character pointer which is the address of the ’e’ just before the ’d’ in the last word. Again, if the character does not occur in the string then the NULL pointer is returned. Write a main program which defines a string, str, which contains the sentence ”A string to be searched”. Your program should then prompt the user for the character to search for, c. The functions first and last are then called with str and c as arguments and the resulting strings (starting at the returned pointers) are printed to an output file. For example, if you type in the letter ’s’ as the character to search for, your program should print out Original string: A string to be searched First occurrence of ’s’ starts the string: string to be searched Last occurrence of ’s’ starts the string: searched
Expert Answer
#include <stdio.h>
char* first(char s[], char c) {
int i = 0;
while(s[i] != NULL) {
if (s[i] == c) {
return &s[i];
}
++i;
}
return NULL;
}
char* last(char s[], char c) {
int i = 0;
char *temp = NULL;
while (s[i] != NULL) {
if (s[i] == c) {
temp = &s[i];
}
++i;
}
return temp;
}
//Since your program asked for file output
//So please see the program output in a text file named output which most probably saved in the same folder where
//your program code lies (or may be somewhere depending on your compiler setup)
void main() {
char str[] = “A string to be searched ”;
char c;
FILE *file = fopen(“output.txt”, “w”);
printf(“Enter the char to be searched: “);
scanf(“%c”, &c);
fprintf(file, “Original string: %sn”, str);
fprintf(file, “First occurrence of ’%c’ starts the string: %sn”, c, first(str, c));
fprintf(file, “Last occurrence of ’%c’ starts the string: %sn”, c, last(str, c));
fclose(file);
}
//text output
//Console output