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