2026/4/18 10:33:31
网站建设
项目流程
域名备案网站备案,百度推广效果怎么样,锐捷网络公司怎么样,wordpress 基础seo建站1. istringstream是什么
2. 它的 “规则” 是什么#xff1f;
3. 什么能分割#xff0c;什么不能分割#xff1f;
4. 基本用法#xff1a;按空白符分割
5. 实践练习
6. 学习要点总结
一. istringstream是什么istringstream#xff1a;字符串的流式读取器#xff08;简明扼…1. istringstream是什么2. 它的 “规则” 是什么3. 什么能分割什么不能分割4. 基本用法按空白符分割5. 实践练习6. 学习要点总结一. istringstream是什么istringstream字符串的流式读取器简明扼要1️⃣ 一本书 string lineHello World C;就像一本合上的书文字都在里面但无法逐页阅读。2️⃣ 阅读器 istringstreamiss(line);就像把书放入电子阅读器现在可以一页页翻看了3️⃣ 翻页阅读 issword;// 读取一个单词 完整过程演示string bookThe quick brown fox;istringstreamreader(book);// 放入阅读器string page;readerpage;// 翻到第1页: Thereaderpage;// 翻到第2页: quickreaderpage;// 翻到第3页: brownreaderpage;// 翻到第4页: fox学习要点总结书 → 阅读器 → 翻页 字符串 → istringstream → 操作符阅读器让静态文字变成可流动阅读的内容每次翻页自动处理多余空白阅读器知道什么时候读完流状态二.它的 “规则” 是什么操作符的默认行为跳过前导的空白字符空格、制表符、换行符等读取直到遇到下一个空白字符不包含空白字符本身三.什么能分割什么不能分割✅ 能自动处理的情况cppa b c// → a, b, c (多个空格) hello world // → hello, world (前后空格)one\ttwo\nthree// → one, two, three (制表符、换行符)❌ 不能直接处理的情况cpp// 1. 按逗号分割apple,banana,cherry// → 会得到 apple,banana,cherry (整个字符串)// 而不是 apple, banana, cherry// 2. 按特定字符分割192.168.1.1// → 会得到 192.168.1.1 (整个字符串)// 而不是 192, 168, 1, 1// 3. 保留空字段a,,c// → 会得到 a, c (跳过空字段)// 而不是 a, , c如果要 “随意分割” 怎么办对于复杂的分割需要 std::getline 分隔符cpp#includeiostream#includesstream#includestringintmain(){std::string dataapple,banana,cherry;std::istringstreamiss(data);std::string fruit;// 按逗号分割while(std::getline(iss,fruit,,)){std::coutfruitstd::endl;}// 输出// apple// banana// cherryreturn0;}四.基本用法按空白符分割cpp string textC is awesome!;istringstreamiss(text);string word;while(issword){// 操作符自动跳过空格coutwordendl;}// 输出// C// is// 练习1单词计数器处理多种数据类型cpp string infoAlice 25 165.5 true;istringstreamiss(info);string name;intage;doubleheight;boolenrolled;issnameageheightenrolled;五.实践练习练习2成绩计算器cpp string scores85 92 78 88 95;istringstreamiss(scores);intscore,total0,count0;while(issscore){totalscore;count;}cout平均分: (double)total/countendl;练习3提取数字cpp string mixedabc 123 def 456 ghi;istringstreamiss(mixed);string token;intnumber;while(isstoken){istringstreamtemp_iss(token);if(temp_issnumber){cout找到数字: numberendl;}}练习3单词排序与去重cpp string textapple banana apple orange banana;istringstreamiss(text);string word;setstringunique_words;while(issword){unique_words.insert(word);}// unique_words: {apple, banana, orange}✅ 学习要点istringstream 将字符串转换为可读取的流操作符按空白符分割并自动类型转换适用于格式规范的文本解析配合getline() 可实现按指定分隔符分割是 C 中处理字符串分割的优雅解决方案