In: Computer Science
(USE C ++ AND class STRING ONLY!!!! No java, No cstring and No vector)
Write a program that can be used to train the user to use less sexist language by suggesting alternative versions of sentences given by the user. The program will ask for a sentence, read the sentence into a string variable, and replace all occurrences of masculine pronouns with genderneutral pronouns.
For example, it will replace "he" with "she or he".
Thus, the input sentence
See an adviser, talk to him, and listen to him.
should produce the following suggested changed version of the sentence:
See an adviser, talk to her or him, and listen to her or him.
Be sure to preserve uppercase letters for the first word of the sentence. The pronoun "his" can be replaced by "her (s)"; your program need not decide
between "her" and "hers". Allow the user to repeat this for more sentences until the user says she or he is done.
This will be a long program that requires a good deal of patience. Your program should not replace the string "he" when it occurs inside another word, such as "here". A word is any string consisting of the letters of the alphabet and delimited at each end by a blank, the end of the line, or any other character that is not a letter. Allow your sentences to be up to 100 characters long.
#include <iostream>
#include <string>
#include <cctype>
using namespace std;
int main()
{
char ans = 'y';
string aString,fString;
//do{
cout << "Enter a line : ";
getline(cin,aString);
//My algorithm : Find the h,take 3 letter,check 2 whitespaces,correct
int aLength = aString.length();
for(int j=0;j<aLength;j++)
aString[j]=tolower(aString[j]);
if(aLength <= 3 && aLength >0)
{
cout << "Length <= 3,unable to convert -> may be grammatically incorrect !" << endl;
for(int k=0;k<aLength;k++)
fString += aString[k];
};
for(int i=0;i<aLength && aLength>3;i++)
if((aString[i]=='h') && (aString[i+1]!='\n' && aString[i+2]!='\n'))
{
fString += "h";
if(i==0)
{
string test = aString.substr(i,4);
if((test[1]=='i'&&test[2]=='m')||(test[1]=='e'&&test[2]=='r'))
if(test[3]==' ')
{
fString += "im or her";
i+=2;
}
}else{
string test = aString.substr(i-1,5);
if((test[2]=='i'&&test[3]=='m')||(test[2]=='e'&&test[3]=='r'))
if(test[0]==' ' && test[0]==' ')
{
fString += "im or her";
i+=2;
}
};
}else
fString += aString[i];
cout << fString << endl;
// cout << "Again (Y/N) ?";cin >> ans;
// }while(ans=='y'|| ans=='Y');
return 0;
}