当前位置: 首页 > news >正文

C/C++:字符串分割、版本比较

一、getline()

1、从屏幕读入,切分,不会跳出while。会一直等待输入,换行无效

string s; while(getline(cin, s)) { // 默认按空格切分 cout << s << endl; } string s; while(getline(cin, s, '.')) { // 按'.'切分 cout << s << endl; } string s; while(getline(cin, s, ' .')) { // 按 空格 和 '.' 切分 cout << s << endl; }

2、从屏幕读入一行,切分,会跳出while。

string s; getline(cin, s); stringstream sscin(s); while(getline(sscin, s)) { // 默认按空格切分 cout << s << endl; } string s; getline(cin, s); stringstream sscin(s); while(getline(sscin, s, '.')) { // 按'.'切分 cout << s << endl; } string s; getline(cin, s); stringstream sscin(s); while(getline(sscin, s, ' .')) { // 按 空格 和 '.' 切分 cout << s << endl; }

二、版本比较

版本: x.x.x.x,返回最小版本。

#include <iostream> #include <vector> #include <string> #include <sstream> #include <climits> #include <algorithm> using namespace std; /* 输入 3, 4.3.5.4, 2.10.3, 2.4 最小版本 2.4 */ int main() { vector<int> minver(4, INT_MAX); //最小版本号初始化 int len = 0; //最小版本号长度 0<=len<=4 //将cin读到另一个流scin中,否则while跳不出去 string s; getline(cin, s); stringstream scin(s); //版本号比较 while(getline(scin, s, ',')) { //按版本号切分 //cout << "#" << s << "#" << endl; vector<int> temp(4, 0); int k = 0; stringstream sv(s); while(getline(sv, s, '.')) { //按数字切分 //cout << "@" << s << "@" << endl; stringstream sn(s); int x; sn >> x; temp[k++] = x; //cout << "&" << x << "&" << endl; } for(int i=0; i<4; i++) { //比较 if(temp[i] < minver[i]) { minver = temp; len = k; break; } } } //输出最小版本号 for(int i=0; i<len-1; i++) { cout << minver[i] << '.'; } cout << minver[len-1]; getchar(); return 0; }
http://www.cnnetsun.cn/news/3715321.html

相关文章:

  • Json粘贴为类
  • 算不准,活得好:从“人算不如天算”到“活的系统”
  • 北京展厅设计制作公司推荐与选型指南
  • BERT模型在金融新闻去重中的应用与实践
  • 零代码改造Codex:低成本接入DeepSeek实现高效AI编程
  • 从UPX脱壳实战看软件保护与逆向分析的技术演进
  • 猫抓浏览器资源嗅探扩展完全手册:三步成为网页资源捕获专家
  • vJoy虚拟输入驱动:Windows系统下的全栈虚拟控制器技术深度解析
  • Unity3D 问题解决----Assertion failed on expression: 'go.IsActive()'
  • 终极解决方案:3分钟修复所有Windows软件运行库问题
  • 深入解析svchost.exe进程的Shellcode注入技术原理与防御实践
  • NBM5100A与PIC18F97J94在IoT设备中的高效能源管理方案
  • Let'sEncrypt-申请ssl证书-续签,手动
  • 机器学习实践(一)
  • CTF实战复盘:Web渗透、逆向工程与密码学攻防艺术
  • 2026挖洞潜规则:为什么大佬专挑“烂网站”挖高危,你却只会死磕大厂?
  • 计算机毕业设计之基于SpringBoot的电影购票系统
  • Outfit字体v1.0技术架构解析:现代品牌自动化系统的字体解决方案
  • Linux 系统入门:一周高效学习路径与实战指南
  • 5分钟快速备份QQ空间历史说说的终极完整指南:GetQzonehistory免费工具使用教程
  • Zookeeper单机部署单服务过程(非docker方式)
  • cAdvisor容器监控实战:Docker部署、指标查看与公网访问
  • 智慧城市AI算法失效真相:不是模型问题,而是这4类城市动态数据未做时空对齐
  • 3D模型【狮子】
  • 数据结构实验(C语言):堆串
  • 行空板双路电机驱动与I/O扩展板详解:从原理到机器人项目实战
  • 流式语音合成技术:低延迟TTS在实时交互中的应用
  • AI学习效率的“临界点突破法”:第17小时后大脑突触连接激增214%(MITDeepMind联合实验原始数据节选)
  • 别再无脑开高推理!Opus 5高配会擅自重构代码乱加戏
  • 检索增强生成(RAG)技术全景图:2025 年的工具、方法和最佳实践