[问题] 如何把字串中的数字取出(有空格相间)

楼主: a855341 (崧楼下的脚印)   2017-06-20 01:57:37
开发平台(Platform): Win7
编译器(Ex: GCC, clang, VC++...):DevC
问题(Question):
新手上路遇到一个问题
python可以把一串字串(或输入一大段字串用空白或逗号相间),转换后运算
例如 " 10 20 30 123 " 变成
作者: school4303 (某爬虫类)   2017-06-20 02:34:00
以前写过类似的 用循环就行了 方式还蛮多的在i的时候先看i+1是不是数字就行
作者: moebear (萌熊)   2017-06-20 03:44:00
如果你不是在做大数的话 用strtok+atoi就可以了上面是不知道有几个数字的情况,必须以一行为单位处理时如果知道有几个数字 或是整个资料档为一个单位的时候直接用%s或是cin连续读取就好了几个数字的用循环 整个资料档的去检查EOF
作者: grayStone (灰色石头)   2017-06-20 05:21:00
http://bfy.tw/Ble9第一个结果
作者: TeaEEE (爱不趴 不爱趴)   2017-06-20 08:10:00
试试regex
作者: theTai (theTai)   2017-06-20 10:31:00
在while循环中加入int var = atoi(pch);观察var变化大概就可以掌握atoi函式的用法了原Po的作法只要修一下就可以用了不过如果是从python过来的可能要熟悉一下C的阵列与指标
作者: libertyleave (SSLin)   2017-06-20 11:25:00
原PO 原来的做法中 pch 得到的并不是一个字串阵列而是单一一个字串 例如 pch ="10" 这样 所以会像楼上大大说的 atoi 要加在 while 循环中
作者: Littlechozy (キミに100%)   2017-06-20 13:08:00
c++的话用boost的split或自己实做一个split
作者: shadow0326 (非议)   2017-06-20 16:41:00
c我会用strtol c++我会用sstream
作者: hunandy14 (Charlott.HonG)   2017-06-20 18:02:00
strtok用错了 http://ideone.com/A5YgqR
作者: bluesoul (忙死你老爸)   2017-06-20 20:39:00
用boost split就可以了
楼主: a855341 (崧楼下的脚印)   2017-06-21 11:25:00
感谢各位的解释方法 我晚点来试试看

Links booklink

Contact Us: admin [ a t ] ucptt.com