字符串分割
1. 将字符串以特定字符进行分割,例如将 "usr/local/lib64" 以 "/" 进行分割
vector<string> Split(const string& str) { stringstream ss(str); vector<string> res; string substr; while (getline(ss, substr, '/')) { if (substr != "") { res.push_back(substr); } } return res; }
2. 字符串以特定子字符串进行分割,例如将 "usr//local//lib64" 以 "//" 进行分割
vector<string> Split(const string& str) { const string delimiter = "//"; auto buffer = str; size_t pos = buffer.find(delimiter); // 找到第一个子字符串 "//" 的索引 vector<string> res; while (pos != string::npos) { auto subStr = buffer.substr(0, pos); buffer = buffer.substr(pos + 2); // 这里加上的是子字符串 "//" 的大小 pos = buffer.find(delimiter); res.emplace_back(subStr); } res.emplace_back(buffer); return res; }
3. 将字符串转换为数字
方法一:stoi
优点:可转8、10、16进制数,默认转十进制数;
缺点:当匹配到非数字串可能会抛出异常,如:str = "cc100";
string str = "01011"; int i = stoi(str, 0, 2); // 将字符串 str 从 0 位置开始到末尾的 二进制 转换为 十进制
方法二:stringstream
优点:简洁(推荐),有 dec/oct/hex 三种
stringstream ss(str);
ss >> dec >> num;
方法三:将二进制字符串转换为二进制数字输出
bitset<8> decBits(10); // 将十进制转换为二进制输出 bitset<8> strBits("00110011"); // 注意如果0或1的其他数字出现,会抛出异常
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?