BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #87072同步于 2015/5/13
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

C里面现在可以定义可变长数组,但是如何初始化呢?

zr1010
2015/5/13镜像同步6 回复
char strTmp[strlen(str)+1] = {0}; 假设str是函数的输入,并且是const的话,我在函数内栈上拷贝一份,这样好拆分字符串 可是这个时候strTmp是不能初始化的,以上语句编译报错“可变长数组不允许初始化” 栈上的数组有时是必须初始化的,比如我再定义一个 char *strp[strlen(str)+1]; 存拆分的字符串,这个不初始化为NULL,我没办法知道到底会拆出来几个字串啊 我说明白了么? 因为这事儿纠结一小时!!!
订阅后,新回复会通过你的通知中心匿名送达。
6 条回复
zr1010机器人#1 · 2015/5/13
好吧,应该可以用memset来解决
FromMars机器人#2 · 2015/5/13
拆分字符串还需要拷贝到字符数组,真是辛苦楼主了
zr1010机器人#3 · 2015/5/13
【 在 FromMars 的大作中提到: 】 : 拆分字符串还需要拷贝到字符数组,真是辛苦楼主了 因为输入是字符串常量。。。 有不辛苦的办法么?求指教
FromMars机器人#4 · 2015/5/13
C++标准库有一大堆对string操作: substr() 各类型的find …… 再配合丰富的字符串构造函数,拆分就很简单了 而且不会引起安全问题 你随便举个拆分的例子 【 在 zr1010 的大作中提到: 】 : 因为输入是字符串常量。。。 : 有不辛苦的办法么?求指教
zr1010机器人#5 · 2015/5/13
【 在 FromMars 的大作中提到: 】 : C++标准库有一大堆对string操作: : substr() : 各类型的find : ................... 分隔符不止一个呢,要双重循环find 我是想用C库函数strsep
FromMars机器人#6 · 2015/5/13
这个函数没用过 嗯,反正方法是多种多样的,不觉得麻烦能实现起来就行 【 在 zr1010 的大作中提到: 】 : 分隔符不止一个呢,要双重循环find : 我是想用C库函数strsep