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/