c++字符串操作
2021/8/28 22:36:07
本文主要是介绍c++字符串操作,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1. string转map
主要用到 std::getline()
和 std::ws
#include <map> #include <string> #include <sstream> #include <iostream> std::map<std::string, std::string> mappify1(std::string const& s) { std::map<std::string, std::string> m; std::string key, val; std::istringstream iss(s); // iss >> std::ws 将流的前导空格去掉 while(std::getline(std::getline(iss >> std::ws, key, ':') >> std::ws, val)) m[key] = val; return m; } std::map<std::string, std::string> mappify2(std::string const& s) { std::map<std::string, std::string> m; std::string::size_type key_pos = 0; std::string::size_type key_end; std::string::size_type val_pos; std::string::size_type val_end; while((key_end = s.find(':', key_pos)) != std::string::npos) { if((val_pos = s.find_first_not_of(": ", key_end)) == std::string::npos) break; val_end = s.find('\n', val_pos); m.emplace(s.substr(key_pos, key_end - key_pos), s.substr(val_pos, val_end - val_pos)); key_pos = val_end; if(key_pos != std::string::npos) ++key_pos; } return m; } int main() { std::string s = "CA: ABCD\nCB: ABFG\nCC: AFBV\nCD: 4567"; std::cout << "mappify1: " << '\n'; auto m = mappify1(s); for(auto const& p: m) std::cout << '{' << p.first << " => " << p.second << '}' << '\n'; std::cout << "mappify2: " << '\n'; m = mappify2(s); for(auto const& p: m) std::cout << '{' << p.first << " => " << p.second << '}' << '\n'; }
这篇关于c++字符串操作的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-07-03微信支付提示下单账户与支付账户不一致-icode9专业技术文章分享
- 2024-07-03微信支付提示订单号重复-icode9专业技术文章分享
- 2024-07-02微服务启动nacos注册上去了,但是一直没有收到请求-icode9专业技术文章分享
- 2024-07-02如何检查文件的编码格式-icode9专业技术文章分享
- 2024-07-02sublime 更改编码格式-icode9专业技术文章分享
- 2024-06-30uniAPP 实现全屏左右滚动滚动的效果-icode9专业技术文章分享
- 2024-06-30如何在本地使用授权或插件-icode9专业技术文章分享
- 2024-06-30伪静态规则配置方法汇总-icode9专业技术文章分享
- 2024-06-29易优CMS安装常见问题汇总-icode9专业技术文章分享
- 2024-06-28易优新手必读安装教程-icode9专业技术文章分享