这篇文章基于这里给出的解决方案,关于 SO
我编写了一个函数来获取给定的文件扩展名(字符串类型),例如:
void GetFileExtension(string filename, char* extension)
{
vector<string> rec;
StrDelimit(filename, '.', rec);
//cout << rec[rec.size()-2].c_str()[1] << endl;
//extension = rec[rec.size()-2].c_str()[0];
//extension = &rec[rec.size()-2].c_str()[0];
string str = rec[rec.size()-2];
// conversion from string to char*
vector<char> writable(str.size() + 1);
std::copy(str.begin(), str.end(), writable.begin());
//cout << writable << endl;
extension = &writable[0];
}
StrDelimit 工作正常,它接收一个字符串并通过给定的分隔符分隔子字符串的向量
如图所示,我使用“//从字符串到字符*的转换”将结果返回给调用主程序
没有编译错误,但结果是一串无意义的字符。这是什么问题?
任何帮助,将不胜感激!
谢谢!