I meant to write program which will simply delete single letters from the input given by user, let's say we've got some text like: "monkey eat banana" and we supposed to delete the letter 'a' from the text above.
The final output supposed to look like this: 'monkey et bnn'
I've got the code which works pretty much flawlessly with single strings, but I have to use getline() function to obtain some longer texts, that is why I have to declare array of string, in order to pass it's size in the second argument of getline() function, like so:
string text[256];
getline(text, 256);
I would like to use getline() function without giving a size of an array, but I think it's impossible, therefore I need to stick with string array instead of a string.
The problem I've got is that I don't know how to correctly pass array of string, to use it as function's argument. Here's my code;
#include <iostream>
#include <string>
using namespace std;
void deleteLetter(string &text[], char c)
{
size_t positionL = text.find(c);
if(positionL == string::npos)
cout << "I'm sorry, there is no such letter in text" << endl;
else
text.erase(positionL, positionL);
cout << "After your character removed: " << text << endl;
}
int main()
{
string str1[256];
char a = 'a';
cin.getline(str1, 256);
deleteLetter(str1, a);
}
I know it's elementary stuff, but still I can't figure it out on my own. Perhpahs I should reach out for your help.
std::vector< std::string >instead of an array; it's easier to pass to functions.cin.getlineoperates on C-strings (char arrays), not onstd::string. I guess what you want is the standalonegetlinefunction:getline(cin, str)which operates onstd::string- and then put this in a loop to read multiple lines until the end:while(getline(cin, str)) { deleteLetter(str, a); }std::string*or something likearray_view<std::string>as a function parameter type might be a better choice: it does not require the user to use a specific container.