【发布时间】:2013-02-09 13:52:04
【问题描述】:
这篇文章基于here 给出的解决方案,一个关于 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 工作正常,它接收一个字符串并通过给定的分隔符分隔子字符串向量
我使用"//conversion from string to char*" 将结果返回给调用主程序
没有编译错误,但结果是一串无意义的字符。这是什么问题?
任何帮助将不胜感激!
谢谢!
【问题讨论】:
标签: c++ string pointers parameter-passing