刚刚要找个按空格分离std::string的函数, 结果发现了stackoverflow上的这个问题.

也没仔细看, 直接拿来一试, 靠, 不对啊, 怎么分离后多出个空字符串, 也就是 "abc def" 分离后, 得到的是:

"abc"

"def"

""

这不科学! 老外在耍我么, 再看原来的回答下面已经有人commet了:

while (iss) { string subs; iss >> subs; cout << "Substring: " << sub << endl; }

满心欢喜的再一试, 靠, 还是不对啊! 老外也太不靠谱了, 再看下面的comment, 乐了:

 @Eduardo: that's wrong too... you need to test iss between trying to stream another value and using that value, i.e. string sub; while (iss >> sub) cout << "Substring: " << sub << '\n'; –  Tony D Apr 11 '12 at 2:24 

感觉老外有时候也是会激动, 手抖的, 哈哈.

拿这位仁兄的代码再试, OK了.

不过这些老外的代码感觉还是不太规范的, 比如在判断iss是否可用的时候, 是直接判断的, 跟进去的话, 可以看到这里其实是调用了这么个函数:

__CLR_OR_THIS_CALL operator void *() const
{// test if any stream operation has failedreturn (fail() ? 0 : (void *)this);
}

我在文档里没有找到这个的说明, 所以最后我还是用了比较规范的方式:

std::string str = "abc def";
std::istringstream iss(str);
while (iss.good())
{iss >> str;std::cout << str << std::endl;
}

转载于:https://www.cnblogs.com/chaoswong/p/3457849.html

std::string的split函数相关推荐

  1. 给std::string增加format函数

    From: http://www.0xcode.cn/jishu/biancheng/5.html #ifndef lstring #ifdef _UNICODE #define lstring st ...

  2. Java 中String的split函数简介

    在字符串处理过程中,我们经常遇到要把一个字符串转出字符数组,使用的split函数,下面就该函数进行简单说明. split 方法:将一个字符串分割为子字符串,然后将结果作为字符串数组返回. string ...

  3. C++ split() 函数

    C++中没有 split() 函数,有时在处理字符串的时候很不方便. 下面我们就来实现一个自己的 split() 函数. split() static void _split(const std::s ...

  4. 【C++标准库】std::string用法指南源码剖析

    文章目录 1.ASCII码 (1)计算机如何表达字符 2.C 语言中的字符类型 char (1)思想:char 即整数 (3)C 语言帮手函数 (4)C语言中的字符串 (4)C 语言转义符 3.C++ ...

  5. java trim()函数_Java - split()函数和trim()函数的使用方法

    split()函数和trim()函数的使用方法 本文地址: http://blog.csdn.net/caroline_wendy/article/details/24465141 详细參考Java ...

  6. C++ 标准程序库std::string 详解

    现在一般不再使用传统的char*而选用C++标准程序库中的string类,是因为string标准程序和char*比较起来,不必担心内存是否足够.字符串长度等等,而且作为一个类出现,集成的操作函数足以完 ...

  7. java双斜线转义_转义字符\(在hive+shell以及java中注意事项):正则表达式的转义字符为双斜线,split函数解析也是正则...

    转义字符将后边字符转义,使特殊功能字符作为普通字符处理,或者普通字符转化为特殊功能字符. 各个语言中都用应用,如java.python.sql.hive.shell等等. 如sql中 "\& ...

  8. std::string::npos的使用

    std::string::npos std::string::npos是一个常熟,它等于size_type类型可以表示的最大值,用来表示一个不存在的位置,类型一般是std::container_typ ...

  9. std::string详解

    之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必 担心内存是否足够.字符串长度等等,而且作为一个类出现,他集成的操作函数足以完成我们大多数情况下(甚至 ...

最新文章

  1. 人脸识别技术商用再加速 安企步履坚定
  2. CvSVM::EPS_SVR train_auto assertion sv_count != 0 failed原因
  3. html Selection
  4. C++中类和对象的一些注意事项 --- 多态
  5. Java GregorianCalendar hashCode()方法与示例
  6. 往远程mysql传数据库_三、Navicat将远程MySql数据库数据导入本地
  7. Golang语言 零基础入门教程
  8. 脱库数据分享论坛_22G疑为12306脱库文件大揭秘
  9. MCMC蒙特卡洛算法
  10. android逆向 arm,[原创]Android下ARM静态反编译逆向.(小试多玩YY协议)
  11. Python-Curses模块
  12. 161张Menhera酱表情包 无水印汉化版
  13. 浏览器显示“您与此网站之间建立的连接不安全”的解决方案
  14. Rust学习教程32 - 动态数组Vec
  15. 300字美文摘抄加赏析
  16. 计算机应用基础考试试题及答案 在word中,用户建立的文件默认,2009年10月全国自考计算机应用基础历年真题...
  17. 【阅读论文】第五章--分割微动脉瘤--博-自动化眼底图像分析技术可筛查糖尿病患者的视网膜疾病
  18. SMT阻容件常用规格参数
  19. 小科普 | 什么是MTBF?那MTTF、MTTD、MTTR又是啥?
  20. 2020汽车修理工(中级)实操考试视频及汽车修理工(中级)考试试题

热门文章

  1. log4j:WARN Please initialize the log4j system properly
  2. git checkout之一 HEAD基本和detached 状态
  3. 用 UrlRewriteFilter 实现 URL 重写
  4. java对象锁与类锁区别
  5. (golang)HTTP基本认证机制及使用gocolly登录爬取
  6. 【洛谷】【动态规划+单调队列】P1725 琪露诺
  7. Web移动适配笔记(ing)
  8. 某人一定不会的——重口味线段树
  9. Office2016打开doc字符间距过小
  10. How to correctly encode .mp4 files for streaming