Pessoal, o que eu quero é basicamente isso:
string a = "x+y";
string b = "x";
string c = "y";
Pessoal, o que eu quero é basicamente isso:
string a = "x+y";
string b = "x";
string c = "y";
Ele perguntou em C/C++ amigão. Vou presumir que você queira fazer isso em C++ e que a quantidade de argumentos (X e Y) seriam exatamente dois. Então você faria:
std::string str = "x+y", a, b;
size_t operator_position = str.find_first_of("+");
a = str.substr(0, operator_position);
b = str.substr(operator_position);
Agora se você quiser iterar a String pra de repente adicionar num vetor todos os ‘argumentos’, você faria mais ou menos o seguinte:
#include <vector>
std::vector<std::string> split_string(std::string str, const char* op) {
std::vector<std::string> result;
std::string rest = str, block;
size_t operator_position = rest.find_first_of(op);
while (operator_position != std::string::npos) {
block = rest.substr(0, operator_position);
rest = rest.substr(operator_position + 1);
operator_position = rest.find_first_of(op);
result.push_back(block);
}
if (rest.length() > 0)
result.push_back(rest);
return result;
}
Daí você poderia chamar a função da seguinte forma:
std::vector<std::string> result = split_str("minha+string+dividida", "+");
E ser feliz.