I am having trouble trying to append a value from a character vector into a string.
Below is a function that needs to convert an input string like 'isValidString' into an output vector of strings that looks like: {is", "valid", "string"}, ie., break the input string, at the occurrence of a Capital letter and then store the strings into a vector (after converting all letters into small case).
The compiler throws an error:
C2664: 'std::basic_string<_Elem,_Traits,_Alloc> &std::basic_string<_Elem,_Traits,_Alloc>::append(const std::basic_string<_Elem,_Traits,_Alloc> &)' : cannot convert parameter 1 from 'char' to 'const std::basic_string<_Elem,_Traits,_Alloc> &'
#include <iostream>
#include <string>
#include <vector>
using namespace std;
void string_separator(string in_string)
{
int i = 0, j = 0;
vector<string> out_string_vect;
char lower_case_alpha_arr[] = {'a', 'b', 'c'};
char upper_case_alpha_arr[] = {'A', 'B', 'C'};
// Creating vectors from arrays
vector<char> lower_case_alpha_vect;
vector<char> upper_case_alpha_vect;
string out_string;
lower_case_alpha_vect.assign(lower_case_alpha_arr, lower_case_alpha_arr+3);
upper_case_alpha_vect.assign(upper_case_alpha_arr, upper_case_alpha_arr+3);
while(i < in_string.length())
{
for(j = 0; j < upper_case_alpha_vect.size(); j++)
{
if (in_string[i] == upper_case_alpha_vect.at(j))
{
out_string.append('\0');
out_string_vect.emplace_back(out_string);
cout << "out_string: " << out_string << endl;
out_string.clear();
}
else
{
char temp = lower_case_alpha_vect.at(j);
out_string.append(temp); // THIS IS WHERE THE COMPILER THROWS THE ERROR!!
//out_string_vect.emplace_back(in_string[i]);
}
}
i++;
}
cout << "out_string: " << out_string << endl;
}
}