У меня есть строка.
Input: std::string kind = 0123|0f12;
У нас есть разделитель "|".
Я хотел бы сохранить эти два значения в две переменные. Как я могу это сделать?
Output: std::string kind1 = 0123; std::string kind2 = 0f12;
std::string kind = "0123|0f12"; std::size_t found = kind.find("|"); if (found != std::string::npos) { std::string kind1 = kind.substr(0,found-1); std::string kind2 = kind.substr(found+1); }
Используйте find , substr и erase Функция члена std::string. Попробуйте это:
std::string
#include <iostream> #include <string> #include <vector> int main() { std::string s = "0123|0f12"; std::string delimiter = "|"; size_t pos = 0; std::vector<std::string> vec; while ((pos = s.find(delimiter)) != std::string::npos) { std::string token = s.substr(0, pos); vec.push_back(token); s.erase(0, pos + delimiter.length()); } if (!s.empty()) vec.push_back(s); for (const auto& i: vec) std::cout << i << std::endl; return 0; }
Вывод:
0123 0f12