In: Computer Science
(Use the string class to solve the problem)
Write a program (in c++) 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 gender-neutral pronouns. For example, it will replace “he” with “she or he”, and “him” with “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) or his”; 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.
You need to take care of the following string replacements:
he/she -> she or he
him/her -> her or him
his/her(s) -> her(s) or his
#include <iostream>
#include <string>
#include <cctype>
#include <vector>
using namespace std;
int main()
{
char ans = 'y';
string aString,fString;
cout << "AntiSexist - By Kudy" << endl;
do{
cout << "Enter a line,I'll censor : ";
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;
}