1

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);
}

另外,我有一个分隔符定义为预处理器常量:

#define SEPARATOR ':'

然后我调用 split 方法

split(ords, input.c_str(), SEPARATOR);

我收到以下错误:

[C++ 错误] File3.cpp(47): E2034 无法将 'int' 转换为 'const char *'

就行了,我在这里调用 split 方法。转换为 const char* 会导致相同的结果。IDE 中是否存在错误,或者我太笨而无法在代码中看到自己的错误?
提前致谢!

4

1 回答 1

6

strtok正在寻找一个const char*作为分隔符。尝试像这样定义它:

#define SEPARATOR ":"

这是因为您可以指定一组分隔符,以便在找到任何这些字符时strtok停止。

于 2012-05-28T19:38:36.020 回答