00 // 01 // Demonstrates/motivates stringviews 02 // 03 04 #include <string> 05 #include <string_view> 06 #include <iostream> 07 08 /* 09 std::string FromToken(const std::string& str, const std::string& token) 10 { 11 if(auto pos = str.find(token); pos != std::string::npos) 12 return str.substr(pos); 13 else 14 return {}; 15 } 16 */ 17 18 std::string_view FromToken(std::string_view str, std::string_view token) 19 { 20 if(auto pos = str.find(token); pos != std::string::npos) 21 return str.substr(pos); 22 else 23 return {}; 24 } 25 26 int main() 27 { 28 std::string str{"Selected Topics in Programming"}; 29 30 auto subStr = FromToken(str, "Topics in"); 31 std::cout << subStr << '\n'; 32 }