Stackoverflow用户!
我正在使用Borland C++ Builder 6来创建我的程序.是的,我知道它已经过时了两年,但是,我必须使用这个IDE.我有一个我需要拆分的字符串.所以我使用以下方法:
void Orders::split(TStringList* lout, char* str, const char* separator) {
for(char* tok = strtok(str, separator); tok!=NULL; tok = strtok(NULL, separator))
lout->Add(tok);
}
Run Code Online (Sandbox Code Playgroud)
另外,我有一个定义为预处理器常量的分隔符:
#define SEPARATOR ':'
Run Code Online (Sandbox Code Playgroud)
然后我调用split方法
split(ords, input.c_str(), SEPARATOR);
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
[C++错误] File3.cpp(47):E2034无法将'int'转换为'const char*'
在线上,我称之为split方法.转换为const char*会导致相同的结果.IDE中是否存在错误,或者我是否因为在代码中看到自己的错误而愚蠢?
提前致谢!
strtok正在寻找一个const char*分隔符.尝试这样定义它:
#define SEPARATOR ":"
Run Code Online (Sandbox Code Playgroud)
这是因为您可以指定一组分隔符,以便在找到任何这些字符时strtok停止.