[问题] 请问如何使用未知大小的动态阵列?

楼主: abab7974 (幻灭)   2016-09-04 14:59:35
开发平台(Platform): (Ex: VC++, GCC, Linux, ...)
VC++
问题(Question):
目前是想做使用者随便输入资料如 123,456,789 并且输入分格符号","
我的程式则会分别将 123放到str[0] 456放到str[1] 789放到str[2]
主是要用来做字串分割的,可是目前问题是我不知到使用者会输入多少资料
可能如 1qaz.2wsx.3edc.4rfv 或是 978,4098,4087,04890,8409,049,5640
所以我不知道该如何去设定动态阵列的大小
我目前的想法是 先去算使用者输入的字串数,算完后再去设定动态阵列大小
再把分割完后的字串一一的丢到阵列里,可是这样会造成我做了两次运算
可能是我写的不太好,所以请各位大大帮我看一下我的程式码的问题
我之前是有使用vector这样就不用计算输入的字串多寡,可以直接将分隔完的字串
直接塞到阵列中,但是因为我们老师的需求,之后可能会用C#或是其他程式语言
而C#没有Vector所以希望我能使用普通的阵列来做,这样改用其他程式语言,就不太需要
改动太多程式码。
请板友给我一些意见,谢谢各位。
程式码(Code):(请善用置底文网页, 记得排版)
计算输入字串数
http://ideone.com/a13zD7
分割字串并分别存入动态阵列中
http://ideone.com/Moh4Tv
作者: james732 (好人超)   2016-09-04 15:02:00
C#也有跟vector一样方便的东西啊,譬如List
作者: EdisonX (卡卡兽)   2016-09-04 15:04:00
看 code , 是用 MFC ATL CString, 若是这样的话,读进来整个字串先放到一个 buffer , 再用 CString::Tokenize 取得有多少字段,再用动态配置。至于你说的普通阵列达到这需求,漂亮的方法没有。
楼主: abab7974 (幻灭)   2016-09-04 15:15:00
所以如果我要用普通阵列做的话,就只有我目前这样吗?因为我觉得我现在的写法有点笨,我是去算找到几个"符号"来计算阵列要设定多大..而不是计算有多少字串..因为我之后可能还需要使用到C#或是VB 所以想尽量用比较共通的语法,这样之后比较好改
作者: Sidney0503 (Sidney0503)   2016-09-04 15:23:00
有规定不能用malloc?
作者: EdisonX (卡卡兽)   2016-09-04 15:39:00
换语言一般也是像你这样做,顶多一边 token一边 push back
楼主: abab7974 (幻灭)   2016-09-04 16:11:00
没有,他是希望说我用相近一点的语法 这样之后或别的程式语言做一些类似的事情的时候我才不用花太多时间去修语法整合,可以更快的做其他的事情不过如果目前是我这样的做法就OK,没有更好的方法的话那我就先这样了,先去弄其他的部分我是比较想要把那两段搜寻"符号"位置的程式码变成一段不然这样变成有两段几乎再做一样的事情,不过我还想不到太好的用法...所以还是只能分成两段来做

Links booklink

Contact Us: admin [ a t ] ucptt.com