我有一个函数可以将字符串分成不同的部分,然后解析它们,但是当将字符串转换为 char* 时,我得到一个格式错误的输出。
int parseJob(char * buffer)
{ // Parse raw data, should return individual jobs
const char* p;
int rows = 0;
for (p = strtok( buffer, "~" ); p; p = strtok( NULL, "~" )) {
string jobR(p);
char* job = &jobR[0];
parseJobParameters(job); // At this point, the data is still in good condition
}
return (1);
}
int parseJobParameters(char * buffer)
{ // Parse raw data, should return individual job parameters
const char* p;
int rows = 0;
for (p = strtok( buffer, "|" ); p; p = strtok( NULL, "|" )) { cout<<p; } // At this point, the data is malformed.
return (1);
}
我不知道第一个函数调用第二个函数之间会发生什么,但它会使数据格式错误。
从给出的代码示例中可以看出,使用了将字符串转换为 char* 的相同方法,并且效果很好。
我正在使用 Visual Studio 2012/C++,任何指导和代码示例将不胜感激。