c++ - 常量 char 不断转换为 int

标签 c++ c++builder

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++ Error] File3.cpp(47): E2034 Cannot convert 'int' to 'const char *'

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

最佳答案

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

#define SEPARATOR ":"

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

关于c++ - 常量 char 不断转换为 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10789612/

相关文章:

c++ - Borland Builder 2007 - 使 TForm 窗口透明

macos - 在Mac OS X上从资源加载样式

c++ - 如何向 Borland C++ Builder 2010 项目添加一些外部可执行文件?

c++ - 不简单,从 char[8] 转换 long long

c++ - 如何使用指针从不同的函数访问局部变量?

c++ - 如何清除 boost::iterator_range

C++ vector 下标超出范围错误 1221

delphi - TImageList.ShareImages-如何准确使用而不必复制内容?

c++ - 如何专门化模板类中的模板成员函数(已经指定)?

ssl - 获取 "EIdHTTPProtocolException with message ' HTTP/1.1 400 BAD REQUEST'”异常