Question

In: Computer Science

A C++ question: Implement the following functions. Each function deals with null terminated C-strings. You can...

A C++ question:

Implement the following functions. Each function deals with null terminated C-strings. You can assume that any char array passed into the functions will contain valid, null-terminated data. Your functions must have the signatures listed below.

1. This function returns the last index where the target char can be found in the string. it returns -1 if the target char does not appear in the string. For example, if s is “Giants” and target is ‘a’ the function returns 2.

int lastIndexOf(char *s, char target)

2. This function finds all instances of the char ‘target’ in the string and replaces them with ‘replacementChar’. It also returns the number of replacements that it makes. If the target char does not appear in the string it returns 0 and does not change the string. For example, if s is “go giants”, target is ‘g’, and replacement is ‘G’, the function should change s to “Go Giants” and return 2.

int replace(char *s, char target, char replacementChar)

3. This function returns the index in string s where the substring can first be found. For example if s is “Skyscraper” and substring is “ysc” the function would return 2. It should return -1 if the substring does not appear in the string.

int findSubstring(char *s, char substring[])

4. This function returns true if the argument string is a palindrome. It returns false if it is not. A palindrome is a string that is spelled the same as its reverse. For example “abba” is a palindrome. So is “hannah”, “abc cba”, and “radar”.

bool isPalindrome(char *s)

Note: do not get confused by white space characters. They should not get any special treatment. “abc ba” is not a palindrome. It is not identical to its reverse.

Solutions

Expert Solution

C++ Program:

#include <iostream>

using namespace std;

//Function Prototypes
int lastIndexOf(char *s, char target);
int replace(char *s, char target, char replacementChar);
int findSubstring(char *s, char substring[]);
bool isPalindrome(char *s);

//Main function
int main()
{
char s[30];

//Testing functions
cout << "\nlastIndexOf(Giants, a): " << lastIndexOf("Giants", 'a');

//Storing string
strcpy(s, "go giants");
cout << "\n\nBefore replacement: " << s;
cout << "\n replace(go giants, g, G) -> Number of replacements: " << replace(s, 'g', 'G');
cout << "\nAfter replacement: " << s;

cout << "\n\nfindSubstring(Skyscraper, ysc): " << findSubstring("Skyscraper", "ysc");

cout <<"\n\nisPalindrome(madam): " << (isPalindrome("madam")?"True":"False");
cout <<"\n\nisPalindrome(program): " << (isPalindrome("program")?"True":"False");

cout << "\n\n";
return 0;
}

//function returns the last index where the target char can be found in the string
int lastIndexOf(char *s, char target)
{
int i=0, pos=-1;

//Iterating over the string
while(s[i] != '\0')
{
//Comparing characters
if(s[i]==target)
{
//Updating position
pos = i;
}
//Incrementing index
i++;
}

//Returning position
return pos;
}

//function finds all instances of the char target in the string and replaces them with replacementChar
int replace(char *s, char target, char replacementChar)
{
int i=0, cnt=0;

//Iterating over the string
while(s[i] != '\0')
{
//Comparing characters
if(s[i]==target)
{
//Updating position
s[i]=replacementChar;
//Incrementing count
cnt+=1;
}
//Incrementing index
i++;
}

//Returning count
return cnt;
}

//function returns the index in string s where the substring can first be found
int findSubstring(char *s, char substring[])
{
int i=0, j=0, start=-1;

//Iterating over the string
while(s[i] != '\0' && substring[j] != '\0')
{
//Comparing values
if(s[i]==substring[j])
{
//Assigning start value
if(start == -1)
{
start = i;
}
//Incrementing index
i++;
j++;
}
else
{
//Checking for search of substring
if(substring[j] == '\0')
{
return start;
}
//Updating index values
j=0;
i++;
start = -1;
}
}
//Returns the start value
return start;
}

//Function that checks for palindrome string
bool isPalindrome(char *s)
{
int i=0;
int j=strlen(s)-1;

//Iterating over each character
while(i<j)
{
//Not match
if(s[i] != s[j])
{
return 0;
}
i++;
j--;
}

//Matched
return 1;
}
_______________________________________________________________________________________

Sample Run:


Related Solutions

A C++ question: Implement the following functions. Each function deals with null terminated C-strings. You can...
A C++ question: Implement the following functions. Each function deals with null terminated C-strings. You can assume that any char array passed into the functions will contain valid, null-terminated data. Your functions must have the signatures listed below. 1. This function returns the last index where the target char can be found in the string. it returns -1 if the target char does not appear in the string. For example, if s is “Giants” and target is ‘a’ the function...
A C++ question: Implement the following functions. Each function deals with null terminated C-strings. You can...
A C++ question: Implement the following functions. Each function deals with null terminated C-strings. You can assume that any char array passed into the functions will contain valid, null-terminated data. Your functions must have the signatures listed below. 1. This function returns the last index where the target char can be found in the string. it returns -1 if the target char does not appear in the string. For example, if s is “Giants” and target is ‘a’ the function...
A C++ question: Implement the following functions. Each function deals with null terminated C-strings. You can...
A C++ question: Implement the following functions. Each function deals with null terminated C-strings. You can assume that any char array passed into the functions will contain valid, null-terminated data. Your functions must have the signatures listed below. 1. This function returns the last index where the target char can be found in the string. it returns -1 if the target char does not appear in the string. For example, if s is “Giants” and target is ‘a’ the function...
Implement the following functions. Each function deals with null terminated C-strings. You can assume that any...
Implement the following functions. Each function deals with null terminated C-strings. You can assume that any char array passed into the functions will contain valid, null-terminated data. Your functions must have the signatures listed below. 1. This function returns the last index where the target char can be found in the string. it returns -1 if the target char does not appear in the string. For example, if s is “Giants” and target is ‘a’ the function returns 2. int...
Implement the following functions. Each function deals with null terminated C-strings. You can assume that any...
Implement the following functions. Each function deals with null terminated C-strings. You can assume that any char array passed into the functions will contain valid, null-terminated data. Your functions must have the signatures listed below. 1. This function returns the last index where the target char can be found in the string. it returns -1 if the target char does not appear in the string. For example, if s is “Giants” and target is ‘a’ the function returns 2. int...
Implement the following functions. Each function deals with null terminated C-strings. You can assume that any...
Implement the following functions. Each function deals with null terminated C-strings. You can assume that any char array passed into the functions will contain valid, null-terminated data. Your functions must have the signatures listed below. 1. This function returns the last index where the target char can be found in the string. it returns -1 if the target char does not appear in the string. For example, if s is “Giants” and target is ‘a’ the function returns 2. int...
C++ program assignment asks to implement the following functions. Each function deals with null terminated C-strings....
C++ program assignment asks to implement the following functions. Each function deals with null terminated C-strings. Assume that any char array passed into the functions will contain valid, null-terminated data. The functions must have the signatures listed below. 1. This function returns the last index where the target char can be found in the string. it returns -1 if the target char does not appear in the string. For example, if s is “Giants” and target is ‘a’ the function...
For this program you will implement the following utility functions to test mastery of C strings....
For this program you will implement the following utility functions to test mastery of C strings. *******you MUST use these these function***** void removeBlanks(char *src, char *dest); void replaceChar(char *src, char oldChar, char newChar); char *flipCase(const char *src); Please read the description of these functions carefully. In the removeBlanks function you will implement a routine that takes a string in as src and outputs the same string into dest but removing any blank space character encountered. For example, if the...
Q) You have been asked to develop a program which processes C++ null-terminated strings to extract...
Q) You have been asked to develop a program which processes C++ null-terminated strings to extract character and numerical data separately. Assume that the users runs the application (examTest.exe) from the command line as follows: examTest.exe X-Axis:10,Y-Axis:17,Z-Axis:-6 Your application should step through the input arguments and extract the values of the XAxis, Y-Axis and Z-Axis commands. The user must always enter the arguments in the specified order, however your application should check they are correct. At the end of your...
Implement each of the following functions and write a basic main() function that tests each. For...
Implement each of the following functions and write a basic main() function that tests each. For convenience, you should be able to find this starter class under Mimir's assignment 4 starter code. Do not change the name, parameters, or returns of any of these functions or of the name of the class itself. There is also no need in this assignment for any global variables. You are strongly encouraged to use your solution for some of these functions in others...
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT